新聞中心
Cloud.getWXContext(): Object
支持端:云函數(shù)
在云函數(shù)中獲取微信調用上下文
返回值
Object
wxContext
| 屬性 | 類型 | 說明 |
|---|---|---|
| OPENID | string | 小程序用戶 openid,小程序端調用云函數(shù)時有 |
| APPID | string | 小程序 AppID,小程序端調用云函數(shù)時有 |
| UNIONID | string | 小程序用戶 unionid,小程序端調用云函數(shù),并且滿足 unionid 獲取條件時有 |
| ENV | string | 云函數(shù)所在環(huán)境的 ID |
| SOURCE | string | 調用來源(云函數(shù)本次運行是被什么觸發(fā)) |
| CLIENTIP | string | 小程序客戶端 IPv4 地址 |
| CLIENTIPV6 | string | 小程序客戶端 IPv6 地址 |
使用說明
SOURCE 值跟隨調用鏈條傳遞,會表示調用鏈路情況(用英文逗號分隔),比如小程序調用云函數(shù) A,再在云函數(shù) A 內調用云函數(shù) B,則 A 獲得的 SOURCE 為 wx_client, B 內獲得的 SOURCE 為 wx_client,scf(微信小程序調用,然后云函數(shù)調用)。
SOURCE 的枚舉類型:
| SOURCE 值 | 含義 |
|---|---|
| wx_devtools | 微信 IDE 調用 |
| wx_client | 微信小程序調用 |
| wx_http | 微信 HTTP API 調用 |
| wx_unknown | 微信未知來源調用 |
| scf | 云函數(shù)調用云函數(shù) |
| 其他 | 非微信端觸發(fā) |
如果在云函數(shù)本地調試中,ENV 會為 local,SOURCE 會為 wx_client。
注意事項
請不要在 exports.main 外使用 getWXContext,此時尚沒有調用上下文,無法獲取得到信息。
示例代碼
const cloud = require('wx-server-sdk')
exports.main = async (event, context) => {
const {
OPENID,
APPID,
UNIONID,
ENV,
} = cloud.getWXContext()
return {
OPENID,
APPID,
UNIONID,
ENV,
}
}Cloud.logger(): Object
支持端:云函數(shù) 1.5.0
云函數(shù)中使用高級日志能力
返回值
Object
logger
| 屬性 | 類型 | 說明 |
|---|---|---|
| log | function | 默認等級的日志 |
| info | function | 普通等級的日志 |
| warn | function | 警告等級的日志 |
| error | function | 錯誤等級的日志 |
使用說明
用于使用高級日志能力。
logger 方法返回一個 log 對象,log 對象包含以下方法,每調用一次產生一條日志記錄: log:默認等級的日志 info:普通等級的日志 warn:警告等級的日志 error:錯誤等級的日志
所有的方法都接收一個對象,對象的每個
示例代碼
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV,
})
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const log = cloud.logger()
log.info({
name: 'xx',
cost: 10,
attributes: {
width: 100,
height: 200,
},
colors: ['red', 'blue'],
})
// 輸出到日志記錄中會有這么一條記錄:
// {
// "level": "info",
// "name": "xx",
// "cost": "10",
// "attributes": "{ width: 100, height: 200 }",
// "colors": "[ "red", "blue" ]"
// ..., // 其他系統(tǒng)字段
// }
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}Cloud.CDN(opt: string|ArrrayBuffer|Object)
支持端:小程序 2.12.0
小程序端調云函數(shù)傳遞大數(shù)據(jù)可用的臨時 CDN
參數(shù)
opt: string|ArrrayBuffer|Object
使用說明
標記需要上傳到 CDN 的文件/大字符串然后轉換成 HTTP URL 的數(shù)據(jù),必須在 callFunction 中使用。
小程序端調用云函數(shù)時,如需傳遞大數(shù)據(jù)(建議 128k 以上時),可用此 CDN 方法標記需要傳遞的數(shù)據(jù),即可以是字符串,也可以是臨時文件路徑。標記之后,在調用云函數(shù)時,系統(tǒng)會自動上傳相應數(shù)據(jù)到臨時 CDN,最終云函數(shù)內接收到的該字段將會是一個 CDN 地址,可在云函數(shù)內請求下來。
用這個方法可以避免大數(shù)據(jù)在云函數(shù)鏈路內的傳輸,提高大數(shù)據(jù)調用時的性能,同時避免觸及調用數(shù)據(jù)的大小限制。
CDN 方法可以接收三種參數(shù)類型:
- String
- ArrayBuffer
- 文件路徑定義對象
當使用文件路徑定義對象時,將在調用服務 API 時自動將相應文件路徑對應的文件內容上傳至 CDN 并轉換成 CDN URL,對象定義如下: 入?yún)?
接收一個對象,對象下有如下定義的字段:
| 字段名 | 類型 | 必填 | 說明 |
|---|---|---|---|
| type | string | 是 | 定義對象的類型,必填 filePath |
| filePath | string | 是 | 文件路徑 |
示例代碼
wx.cloud.callFunction({
name: 'test',
data: {
strDemo: wx.cloud.CDN('some large string'),
filePathDemo: wx.cloud.CDN({
type: 'filePath',
filePath: 'xxxxxxxx',
})
},
})
.then(console.log)
.catch(console.error) 文章題目:創(chuàng)新互聯(lián)小程序教程:微信小程序云開發(fā)SDK文檔工具類
網站網址:http://m.5511xx.com/article/coeihpg.html


咨詢
建站咨詢

