云函數(shù)
云函數(shù)是一段運(yùn)行在云端的代碼,無需管理服務(wù)器,在開發(fā)工具內(nèi)編寫、一鍵上傳部署即可運(yùn)行后端代碼。
小程序內(nèi)提供了專門用于云函數(shù)調(diào)用的 API。開發(fā)者可以在云函數(shù)內(nèi)使用 wx-server-sdk 提供的 getWXContext 方法獲取到每次調(diào)用的上下文(appid、openid 等),無需維護(hù)復(fù)雜的鑒權(quán)機(jī)制,即可獲取天然可信任的用戶登錄態(tài)(openid)。
1. 云函數(shù)創(chuàng)建
根據(jù)官網(wǎng)提示,創(chuàng)建一個(gè)云函數(shù),命名為 add, 功能是將 a , b 兩數(shù)相加,步驟如下:
在文件夾 cloudfunctions 目錄下創(chuàng)建文件夾 add, 編輯add中的index.js文件:
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
console.log(event)
console.log(context)
const {a, b} = event
const {OPENID, APPID} = cloud.getWXContext() // 這里獲取到的 openId 和 appId 是可信的
const sum = a + b
return {
OPENID,
APPID,
sum
}
}
在小程序中調(diào)用這個(gè)云函數(shù)前,我們還需要先將該云函數(shù)部署到云端。在云函數(shù)目錄上右鍵,在右鍵菜單中,我們可以將云函數(shù)整體打包上傳并部署到線上環(huán)境中。
2. 云函數(shù)調(diào)用
部署完成后,我們可以在小程序中調(diào)用該云函數(shù):
//小程序端調(diào)用方法
wx.cloud.callFunction({
// 需要調(diào)用的云函數(shù)名
name: 'sum',
// 傳給云函數(shù)的參數(shù)
data: {
a: 1,
b: 2,
},
success: function(res) {
console.log(res.result.sum) // 3
},
fail: function(err) {
console.log(err)
}
})
也可以使用 Promise 調(diào)用方式:
wx.cloud.callFunction({
// 云函數(shù)名稱
name: 'add',
// 傳給云函數(shù)的參數(shù)
data: {
a: 1,
b: 2,
},
}).then(res => {
console.log(res.result) // 3
})
.catch(console.error)