微信小程序云函数是一个好东西,相当于微信为我们提供了一个可以跑node.js的服务器,并且可以外部通过API的方式调用云函数,不过微信的文档一向写的不明不白,初学的时候踩了不少坑,在这里记录下来。
1、创建微信云函数
在微信开发者工具工程文件列表最顶端的“cloudfunctions”右键“新建Node.js云函数”
image.png

这时候创建的云函数是在本地目录下无法运行的,运行须上传到服务器,在创建的云函数名称上右键会出现上传并部署菜单项:
image.png
这里的“上传并部署:所有文件” 和 “上传并部署:云端安装依赖(不上传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、云函数安装依赖
在云函数名称上右键选择“在外部终端窗口中打开”:
image.png
然后npm install xxxx 。

3、云函数的查看
部署好的云函数可以通过“云开发” - “云函数”来进行查看:
image.png

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,还没有找到原因,怀疑是网络问题


娄靖宇
10 声望0 粉丝

引用和评论

0 条评论