云函数环境配置:
1.在项目下新建一个目录。
2.指定该目录为云函数的跟目录。
在项目的project.config.json文件中,将"cloudfunctionRoot": 字段的值设置为你的云函数根目录,如"cloudfunctionRoot": "云函数根目录"样式,如下图所示,完成该步骤后,上边新建的那个云函数根目录会变成一个有云朵符号的文件夹。
3. 在项目的app.js文件中指定云开发的环境ID
如下图的env字段即为云开发的环境ID,然后在云函数根目录右键之后选择云环境为下图env变量设置的云环境。至此云开发的云函数环境已经搭建好了
//app.js
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: '你的环境ID',
traceUser: true,
})
}
this.globalData = {}
}
})
新建云函数步骤:
1.在云函数根目录右键点击新建node.js云函数
新建完云函数后,会有一个自动上传的过程,等上传完成后,会在右上角进行提示。
2.在新建的云函数处右键在终端打开
在新建的云函数处右键在终端打开,然后输入npm install node-xlsx该命令为使用node.js的npm管理工具安装依赖模块,安装完成之后会在新建的云函数目录下生成一个node_modules和package-lock.json的文件,至此云函数依赖安装完成。
3.编写云函数内容
云函数的业务逻辑都是在云函数的入口出开始编写(exports.main=async(event,context)=>处),我们所有的参数都是通过event参数进行传递,在此处业务逻辑为获取云数据库中guest表的数据,如成功将结果传递给res,失败同样将失败信息传递给res,同时将res这个结果返回;再调用云函数时会提示调用失败,这时候可能时有用又多个env环境导致的,他自己不知道该调用那个,这时候在云函数初始化时建议指定好需要初始化的环境,或者使用图三动态获取当前环境ID。
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
return await cloud.database().collection('guest').get({
success: function (res) {
return res;
},
fail: function (res) {
return res;
}
});
}
4.上传编写的云函数
编写完云函数之后,进行保存,需要注意的是,保存这个操作只是保存到本地,保存完后还需要将编写好的云函数上传到云开发的云函数上面(第一次上传的话选择上传并部署所有文件),以后再有更新可以选择云端安装依赖。
5.如何调用编写好的云函数
首先在wxml文件中编写前台代码,然后在该wxm文件对应的js文件中编写bindtap方法,在该bindtap的方法中使用上边编写好的云函数,注意此处的name属性的内容为上边编写好的云函数的名称,调用成功后,可以获取云函数返回的res值。
getguest: function() {
wx.cloud.callFunction({
"name":"getinfo",
success(res){
console.log("获取成功",res)
},
fail(res){
console.log("获取失败",res)
}
})
},
6.写在最后
在编写云函数时,我们可以按照下边的步骤来进行(小肥🐏给的图),在云函数需要第三方依赖时,我们也可以通过第2步手动在packgae.json的dependencies里面指定需要安装的依赖包,然后在云函数右键终端安装,直接执行npm install就可以了不用加参数,因为已在packgae.json的dependencies里面指定,推荐使用这种方式安装,因为方便管理并且可以用好几个。