云函数
云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk
提供的 getWXContext
方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。
1. 云函数创建
根据官网提示,创建一个云函数,命名为 add, 功能是将 a , b 两数相加,步骤如下:
- 在文件夹 cloudfunctions 目录下创建文件夹 add, 编辑add中的index.js文件:
- // 云函数入口文件
- const cloud = require('wx-server-sdk')
-
- // 云函数入口函数
- 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
- }
- }
在小程序中调用这个云函数前,我们还需要先将该云函数部署到云端。在云函数目录上右键,在右键菜单中,我们可以将云函数整体打包上传并部署到线上环境中。
2. 云函数调用
部署完成后,我们可以在小程序中调用该云函数:
- //小程序端调用方法
- wx.cloud.callFunction({
- // 需要调用的云函数名
- name: 'sum',
- // 传给云函数的参数
- data: {
- a: 1,
- b: 2,
- },
- success: function(res) {
- console.log(res.result.sum) // 3
- },
- fail: function(err) {
- console.log(err)
- }
- })
也可以使用 Promise 调用方式:
- wx.cloud.callFunction({
- // 云函数名称
- name: 'add',
- // 传给云函数的参数
- data: {
- a: 1,
- b: 2,
- },
- }).then(res => {
- console.log(res.result) // 3
- })
- .catch(console.error)