微信小程序云函数是一个好东西,相当于微信为我们提供了一个可以跑node.js的服务器,并且可以外部通过API的方式调用云函数,不过微信的文档一向写的不明不白,初学的时候踩了不少坑,在这里记录下来。
1、创建微信云函数
在微信开发者工具工程文件列表最顶端的“cloudfunctions”右键“新建Node.js云函数”
这时候创建的云函数是在本地目录下无法运行的,运行须上传到服务器,在创建的云函数名称上右键会出现上传并部署菜单项:
这里的“上传并部署:所有文件” 和 “上传并部署:云端安装依赖(不上传node_modules)”是什么意思呢?大多数情况下,我们编写和运行node程序,需要通过npm install安装各种库,npm install 会生成node_modules目录并安装相应的依赖库。如果我们的云函数没有使用到任何依赖库,我们只须选择“上传并部署:云端安装依赖(不上传node_modules)”就可以了,云服务器会自动安装唯一的依赖“wx-server-sdk”;如果我们的云函数安装了其它库,则需要手动安装wx-server-sdk依赖:
npm install wx-server-sdk --production`
然后选择“上传并部署:所有文件” 即可。(我用的是:
npm install --save wx-server-sdk@latest
如果不加@latest会报错)
2、云函数安装依赖
在云函数名称上右键选择“在外部终端窗口中打开”:
然后npm install xxxx 。
3、云函数的查看
部署好的云函数可以通过“云开发” - “云函数”来进行查看:
4、微信小程序调用云函数
wx.cloud.callFunction({
name: 'add',
data: {
a: 12,
b: 19
}
}).then(console.log)
5、外部http api调用云函数
https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=ACCESS_TOKEN&env=ENV&name=functionName
6、注意事项:
a.在云函数中使用其它云函数时,无需wx.cloud.xxx,直接cloud.xxx即可
b.云函数重命名:需以管理员身份打开微信开发者工具,否则会提示没有权限
c.云函数中偶发调用失败 报错socket hang up,还没有找到原因,怀疑是网络问题
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。