小程序云开发小记
小程序云开发小记
现在云开发是越来越火了,刚好最近在做一个小程序云开发的项目,就记录一下心得和遇到的问题!
小程序云开发与普通的开发有什么区别?
最大的区别就是把数据库搬到了云上,而且可以让前端直接操作数据库,让前端开发者某种意义上成为了全栈工程师!
云开发新增了两个关键的知识点:云函数 和 云数据库操作。
云函数
云函数, 顾名思义:就是放到云服务器上的函数,然后小程序可以通过wx.cloud.callFunction的方法调用,非小程序端,也可以通过http请求调用云函数。
云函数的开发流程一般如下: 小程序本地编写函数 -> 本地调试 -> 点击上传函数。具体细节官方介绍得很清楚,可以看这里;
云函数 tip
一般来说,一个文件夹对应一个云函数; 当然你也可以一个文件夹写多个函数,每个函数export一个函数名,然后在index.js中通过不同的请求参数名来调用不同的函数。
// 一个文件夹对应多个函数的情况 // test.js module.exports = async (event, context)=> { console.log('this is test.js'); } // index.js const test = require('./test.js'); const controller = {test}; const cloud = require("wx-server-sdk"); cloud.init({env: cloud.DYNAMIC_CURRENT_ENV }); exports.main = async (event, context) => { const { action } = event; try { return (await controller[action](event, context)) } catch (err) { console.log(err); return err; } }; // 小程序端调用 wx.cloud.callFunction({ name:'xxx', // 这里写云函数的文件夹名称 data:{ action:'test', paramt:'xxx', // 其他自定义参数 } })
云函数所在的文件夹是可以安装npm,一般来说云函数都会依赖wx-server-sdk这个库,所以本地要安装依赖。
如果依赖没有安装,那么本地调试是用不了的。但是我们上传云函数的时候,是可以不上传这些依赖的!
云函数 定时
云函数是可以定时的,需要在云函数的根目录添加一个定时触发器的配置,新建一个config.json, 格式内容如下:
{ // triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个 "triggers": [ { // name: 触发器的名字,规则见下方说明 "name": "myTrigger", // type: 触发器类型,目前仅支持 timer (即 定时触发器) "type": "timer", // config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明 "config": "0 0 2 1 * * *" } ] }
注意: 云函数触发器要在小程序端点击右键选择上传触发器,如果只是选择上传云函数,是没有效果的; 另外要注意的是config的cron格式;格式如果不对,定时的时间可能不会达到预期的效果。具体看这里
善于利用console和日志查看云函数bug
虽然云函数可以本地调试,但不能保证到了云环境中不会报错。这个时候就可以在云开发控制台中的日志查看,可以在关键的地方用console打印调试的信息。
什么地方使用云函数
使用云函数的好处是不用审核就能直接更新,不像小程序更新还要等待审核。以下的几种情况都可以用云函数:
对数据库的写入操作,应该用云函数来解决; 数据库的读取,可以用云函数,也可以在小程序本地,看情况; 复杂的逻辑关系操作,应该放在云函数中,比如:登录;购物车;下单等操作; 第三方的接口对接,也可以写在云函数中;云数据库
关于数据库,腾讯有自己的一套sdk使用,有很多的语句和方法可以用,对于数据库不熟练的前端来说,确实有些压力,需要花多点时间学习,也可以请教认识的后台同事。这里我直接贴上地址,你们慢慢学习传送门
值得注意的地方
云数据库在小程序和云函数上的操作方式都是一样的,但有个地方需要注意的:在初始化数据库的时候,最好指定云环境的id,一般来说我们都是会建立两个不同的云环境的,一个测试,一个正式,但在切换的时候,如果数据库没有指定相应的环境,是会默认读取第一个环境的!!!
还有一个坑,有的人认为在初始化云的时候指定环境 就可以了,其实不完全正确,具体来说,这样只会切换对应的云函数和数据库的读操作,如果涉及数据库的写操作,还是要再指定一下对应的云环境。。。
// 小程序的指定云环境 // 1. 在app.onLaunch 的时候初始化 wx.init.cloud({ env: process.env.NODE_ENV === "development"? "测试环境id":"正式环境id" }); const db = wx.cloud.database({ env: process.env.NODE_ENV === "development"? "测试环境id":"正式环境id" }); // 云函数中指定云环境 const cloud = require('wx-server-sdk'); cloud.init({env:cloud.DYNAMIC_CURRENT_ENV }); const {ENV} = cloud.getWXContext(); // 注意这里是不能用 cloud.DYNAMIC_CURRENT_ENV , 因为它的类型是symbol, 而参数要求是string类型 const db = cloud.database({ env: ENV });
其他需要注意的点
关于Date日期的时区问题
在云环境中,new Date()的时区是UTC+0 时区,不是我们常见的UTC+8 时区,这点是需要注意的,之前没有发现,是因为数据库存的是时间戳,而时间戳是没有时区问题。
相关知识
uniapp+vue3+云开发全栈开发同城配送鲜花小程序任意商城基础入门到实战
分享课程——uniapp+vue3+云开发全栈开发同城配送鲜花小程序任意商城项目
同城鲜花配送微信小程序云开发解决方案
如何开发专属花店展示平台小程序?
鲜花花店小程序开发 花店小程序定制
鲜花小程序开发制作
鲜花小程序定制开发
慕尚花坊小程序开发
线上花店小程序开发
鲜花配送小程序开发
网址: 小程序云开发小记 https://www.huajiangbk.com/newsview849339.html
上一篇: 1500套前端大作业模板 |
下一篇: 前端开发 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039