最近在开始尝试做小程序的云开发。
学习云开发主要有以下几个原因:
- 云开发使用的语言就是 js,服务端就是 nodejs
- 自己开发小程序的服务端,要自己买服务器,买域名,域名备案,还要配置 https,不熟悉怎么配置的人估计会踩很多坑,会花很多的时间。
下面记录一下我在云开发过程中遇到的一些问题。
1. 小程序端可以直接调用操作数据库的 api
小程序有云函数和数据库相关的操作,我自己也有做后端,正常的逻辑应该是在后端操作数据库,所以我一开始理解是,小程序端调用云函数,云函数操作数据库,但是仔细看了官方的文档之后,发现可以直接在小程序端调用操作数据库的 api。
2. 发送模板消息不能定时发送
我想做一个每日定时推送消息的一个功能,刚好云函数也直接定时触发,所以每次用户点击的时候就把 formId 存下来,在云函数里读取 formId,再发送模板消息,但是一直不生效,云函数是能定时触发了,但是每次结果都失败了,找了很久,最后才知道,发送模板消息不能在云函数里调用,只能在小程序的发起。希望后面微信能支持云函数定时发送模板消息吧
3. 数据库有控制台(需要下载开发版 2019.06.20 及之后的版本)
开发版 nightly 版本下载链接
4. 集合的主键:_id 必须是字符串
因为一些原因,我需要在某个集合的每条记录里加一个自增的值,所以我把_id 设置成了 number 类型的,然后试了导入数据和云函数新增数据两种方法,试了好久,一直新增不成功,我以为是什么其他的原因,报错的原因也不是很准确,找了很久,通过数据库操作控制台,新增了一个 add 模板,把需要的新增的数据新增,执行语句之后,这回的报错才是准确的,这回才了解到_id 必须是字符串。