1. 前言
- 本来写云开发系列的,但是发现有些内容单独拆分出来写比较方便
- 万事开头难,下笔如有神,😁😄
2. 云函数调试技巧
- 创建一个云函数
playTest
用作调试- 加个输出调试就行, return 添加了一个字段
cloudPlay
// 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() console.log("云函数调试着玩--event:", event); console.log("云函数调试着玩--context:", context); return { event, cloudPlay:"假装服务器 返回的", openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
- 右键开启云函数本地调试
调试.jpg- 第一次会提示安装依赖
依赖.jpg- 安装完可以在右键开启云函数本地调试
调试.jpg- 本地调试不需上传部署云函数
- 如果修改了云函数,最好在每次手动部署下,以防忘记
- 可以配合断点进行调试
3. 页面调用云函数
app.json
配置测试界面 play- app.json配置,这里可能很多人为了方便调试会利用小程序默认显示
pages
的第一个界面的特性来调试,我们不放第一个,后续通过编译模式来调试,单独后面讲如何配置
"pages": [ "pages/index/index", "pages/todoDetail/todoDetail", "pages/addTodo/addTodo", "pages/play/play" ],
- 直接在钩子里面测试调用吧
- 调用云函数的固定的写法 name为云函数的名字
- data为需要传递的参数 会被云函数第一个参数接收
- 还有个config配置这里没有使用
Page({ onLoad(options) { this.playCloudFn() }, async playCloudFn() { let result = await wx.cloud.callFunction({ name: "playTest", data: { test: "参数", content: "类型 内容随便写" } }) console.log("云函数 结果:", result); } })
4. 编辑模式
- 编译模式菜单
弹出编译模式.jpg- 编译模式配置
配置.jpg- 修改编译模式
修改.jpg- 删除编译模式
1.jpg- 这个添加编译模式 在本地开发或者云开发都是可以使用的
5. 编译
- 点击编译开启调试
- 效果
演示.jpgevent
就是小程序端调用云函数时传入的参数,外加
后端自动
注入的小程序用户的openid
和小程序的appid
。context
对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况,这里打印是空对象,可以在线上环境打印试下- 返回结果是个
Promise
有三个字段result
云函数返回的结果requestID
云函数执行 ID,可用于日志查询errMsg
提示信息- 注意 传递大数据字段.
如果 data 中包含大数据字段(建议临界值 100KB),建议使用wx.cloud.CDN
标记大数据字段,标记后在调用云函数时,该字段的内容将会上传至临时 CDN,然后在云函数中接收到的该字段值将是 CDN url,可在云函数中下载访问。通过这种方式,可以避免大数据传输造成的性能问题、及避免触及调用链路的传输大小限制- 传递 buffer
如果在 data 中如果传入了 Buffer 类型的数据,数据在JSON 序列化
的过程中会被转成 { "type": "Buffer", data: number[] } 的格式
6. 手动触发
- 手动模式触发云函数调试
手动触发.jpg- 点击调用
调用.png- 如果点击调用没反应 重新开启云函数本地调试就行,不用百度,没有答案😭😭😭😭
7. 后记
- 一些开发过程的小心得,仅供参考