使用云函数
1.首先在项目根目录找到 project.config.json
文件,新增 cloudfunctionRoot字段
2.点击保存后,项目根目录创建一个与cloudfunctionRoot字段值一样的文件夹(名字随便起,我起的是cloud)。创建完后这个文件夹就会云朵图标,说明云函数目录已创建完成。
3.右键云函数目录新建node.js云函数,开发者工具在本地创建出云函数目录和入口 index.js 文件,同时在线上环境中创建出对应的云函数。打开index.js可以看到类似如下的一个云函数模板:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return {
event,
openid: wxContext.OPENID,
appid: wxContext.APPID,
unionid: wxContext.UNIONID,
}
}
4.回到小程序中调用该云函数,云函数名为创建node.js云函数名
wx.cloud.callFunction({
// 云函数名称
name: 'getData'
})
.then(res => {
console.log('云函数获取数据成功' , res)
})
.catch(err => {
console.log('云函数获取数据失败' , err)
})
5.重新编译后打开调试器就能看到云函数返回的openid、appid等信息
注意事项:
1.若你有多个环境,云函数目录与云函数文件index.js中的环境必须一致。右键云函数目录可以切换环境,当你切换环境时,index.js中初始化云环境也得更改(当有多个环境时这种比较麻烦)。
2.推荐下面这种方法,这种方法无论你切换到哪个环境下都不需要到云函数index.js中修改环境,cloud.DYNAMIC_CURRENT_ENV变量默认请求的云环境就是云函数当前所在的环境。只要云函数有文件编辑过就需重新上传并部署(右键云函数文件就能看到上传并部署),右侧出现“上传云函数xxx”才说明上传部署成功。
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
关注公众号: 微信小程序: