云函数

云函数怎么添加,代码到底在哪写??

  • 添加
    点开发者工具的云开发按钮打开云开发界面。再点云函数-新建云函数即可新建。除了名字其他默认即可。
  • 编写
    在开发者工具项目目录下,自己新建一个文件夹比如cloudfunction,然后在project.config.json中添加一条设置:
"cloudfunctionRoot": "cloudfunction",

你会发现这个目录图标上添加了一个云符号,表示被识别为云函数目录了。此时目录还是空的,在目录上点右键-同步云函数列表,会将你刚才新建的云函数同步到这个文件夹下,每个函数一个目录。顺序反过来也可以,先创建云目录再新建云函数都可以。

本地调试报错?提示没有wx-server-sdk

wx-server-sdk模块是必须的。

  • 引用wx-server-sdk这个模块
    既然是用微信的服务器,那么肯定会用到这个模块来获取用户信息什么的。这个模块也好,第三方模块也好都是运行在Nodejs下的,所以你需要本地先安装一个Nodejs。然后命令行进入云函数目录cloudfunction/myFunc,然后执行这个命令:
npm install --save wx-server-sdk@latest

完成以后就可以进行本地调试了。

编写好的云函数如何上传部署?

在云函数目录上点右键,有两个上传选项。

  • 上传并部署:所有文件
    速度较慢。
    将你本地的云函数文件还有所有用到的nodejs模块文件全部一起打包上传。比较耗时。
  • 上传并部署:云端安装依赖
    速度很快。
    云函数目录下的node模块不会被上传。云端会根据云函数目录下的package.json文件的内容在云端进行安装相关依赖。所以使用这个选项的时候一定要保证云函数目录里有package.json文件(有时候只有lock.json是不行的,需要手动创建)。
    如果你没有用到第三方模块的话,这个文件写成这样就够了("wx-server-sdk"模块是必须的):
{
    "dependencies": {
        "wx-server-sdk": "latest"
    }
}

本地的Nodejs环境搞不定怎么办

不需要本地调试的话,本地的Nodejs环境就不是必须的。
如上一条所述,使用上传并部署:云端安装依赖即可。

每次上传所有文件很慢,好烦

参见前面说的上传并部署:云端安装依赖。

为什么进行数据库操作后,success没有被回调?

这里是个大坑。官方API文档说是支持的,其实,success fail complete 的回调只能在小游戏客户端使用,而云函数端只支持Promise方式回调。
这里是官方的回复

Last modification:November 8, 2021
If you think my article is useful to you, please feel free to appreciate