微信小程序云开发入门-云函数

JavaScript07

微信小程序云开发入门-云函数,第1张

1 开通云开发

2 app.js

3 新建目录(云函数根目录),project.config.json中cloudfunctionRoot指定刚新建的根目录名称。

4 新建云函数,在云函数根目录右击,新建Node.js 云函数。编写。

5 调用

以官方提供的“小程序云开发快速启动模板”为例。

获取openid失败:

进行“点击获取openid”测试失败,出现下图所示的提示,并且控制台会提示以下错误信息:

VM86:1 [云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message Function not found: [login]at cloud.callFunction api

云端运行环境为 Node.js ,需要先在本地安装 Node.js 和 npm 才能顺利测试。同时还要在云函数目录下安装 wx-server-sdk 依赖:

npm install --save wx-server-sdk

详细内容参见官方文档 https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-server-api/

直接忽略即可,并不会影响后续的云函数功能。成功安装依赖后,相应的云函数文件夹将生成一个 package-lock.json 文件。

Flow.js在基本语法上和TS很相像,我认为它是一个针对老项目的类型推导方案,因为只需要安装简单的包和给文件加入Flow的标识就可以给对应的文件提供类型推导的功能,所以针对目前我所做的这个业务来讲,不存在老项目,所以既然是新项目就不如直接上TS。

在云函数开发过程中,我们在插件市场选择了一款非常简洁已拓展的explain框架,这个框架目前已经支持单路由和restfulAPI还有基本的过滤拦截器,那么目前这个框架没有做TS的解决方案,我就斗胆替作者大大想一个曲线救国的方案,而且这个方案有以下特点:

uni官方的云函数大小限制是10M,所以我们不能把依赖都安装在项目中,需要我们全局安装:

2个插件的玩法很多,尤其是nodemon,在我们这个解决方案中我们只需要简单的配置几个文件就可以把我们的项目跑起来了。

我们的云函数目录是这样的,这是搭配了前面提到的explain.js,在etsc.config.js中我们可以配置一下,输出的js版本规范以及目录和是否进行压缩:

在services目录中编写完ts文件之后,esbuild-node-tsc会把js文件放到dist目录之下,我们现在只需要更改explain.js默认配置:

这样explain会从dist下找文件而不是从services文件下找

我们在这个根目录下运行编译命令即可

这个时候我们运行这个函数就会发现,它已经达到了我们的目标了:

但是我们需要services下的文件一变更就编译放到dist下,我们就需要nodemon帮助我们做这个事情(nodemon.json):

监听services目录,包括文件名为ts,js,json,执行命令etsc

然后我们再把这个运行nodemon的命令放到package.json中: