微信云开发要避开的坑

云开发概念

简单来说可以不用考虑服务器与各个用户设备之间的网络连接通信流程,也不需要搭建服务器,只需要考虑业务逻辑,给每个需求编写后端接口(云函数)。项目中用到的最多的操作就是获取用户的openid以及对数据库进行增删查改。openid是每个用户在这个小程序的唯一标识,用于区分不同用户。

每个云函数编写完之后最好先进行本地调试,本地调试相比在小程序端实际调用更容易看到云函数内存在的问题,云函数本地调试需要node.js以及npm环境。安装教程:安装Node.js和npm - 廖雪峰的官方网站

本地调试完毕之后,将该云函数上传,就可以在小程序端调用该云函数了(必要的情况下可能还要进行一下云端调试,比如该云函数需要被其他云函数调用,或者调用了其他云函数时)。

微信云开发要避开的坑_第1张图片

使用云函数操作数据库有几个坑点:

1、如果你同一个appid创建了多个使用云开发的项目,那么此时会有多个云环境,每个云环境有各自的云资源(云函数和云数据库),所以云函数操作数据库时需要在初始化云函数的时候必须指定使用哪个云环境env(云开发控制台首页可以看到当前云环境 的id),即指出这个云函数调用的是哪个云环境的资源。如果不指定的话,,会默认选择第一个云环境,如果默认环境不是当前的这个环境,就会出现问题。

如图:

微信云开发要避开的坑_第2张图片

微信云开发要避开的坑_第3张图片

在进行本地调试时,环境变量也要选择你当前使用的这个。

微信云开发要避开的坑_第4张图片

官方的开发者文档也不完全是正确的,存在更新滞后的问题

微信云开发要避开的坑_第5张图片

这里不需要”wx.“,加上反而报错。直接const db = cloud.database()即可。

微信云开发要避开的坑_第6张图片

使用云函数操作数据库时,,第一种回调风格是已经被废弃的,,,但官方的开发者文档上并没有做什么表示。建议所有云函数的操作干脆都用第二种风格(Promise风格)。

你可能感兴趣的:(#,微信小程序,微信,前端)