微信小程序——云函数
·
// 云函数入口函数
exports.main = async (event, context) => {
console.log('event=>',event)
}
当云函数被触发时(比如通过HTTP请求、定时任务或数据库变更),外界传入的数据会被包装成 event 对象。但开发者无法直接“看到”这个对象的内容,所以需要用 console.log 打印到日志中,从而:
确认数据是否传递正确(例如参数格式、字段名)。
排查问题(例如为什么函数返回错误?可能数据不符合预期)。
理解事件结构(不同触发器的事件格式不同)
1. 为什么要在日志中看而不是在控制台查看呢?
云函数运行在云端,因此console.log的输出是在云端的日志系统中,而不是浏览器控制台。
2. event对象?
wx.cloud.callFunction({
name: 'get_project', // 调用名为 get_project 的云函数
data: { // 传递给云函数的参数
key: e.currentTarget.dataset.key,
value: e.currentTarget.dataset.value
},
success: res => { console.log('前端收到响应:', res); },
fail: err => { console.log('前端报错:', err); }
});
云函数的event对象是由调用云函数时传入的data参数构成的,与前端的事件监听器不同。前端的click事件处理函数中调用了云函数,并传递了特定的数据,这些数据会成为云函数event对象的一部分
云端执行云函数 → 将 data 包装成 event 对象。
云函数处理逻辑 → 通过 event.key 和 event.value 获取数据。
返回结果给前端 → 前端在 success 回调中接收响应。
一、success: res => { … }
作用:当云函数 调用成功(网络请求成功且云函数正常执行)时触发。
参数 res 的结构
res 是云函数返回的响应对象,包含以下关键字段:
{
result: 云函数返回的数据, // 由云函数中的 return 决定
errMsg: 'cloud.callFunction:ok', // 成功标识
requestID: '请求唯一ID', // 用于追踪问题
// 其他云环境注入的字段(如用户信息)
}
二、fail: err => { … }
作用:当云函数 调用失败(网络错误、权限不足、云函数名称错误等)时触发。
参数 err 的结构
err 是错误对象,包含以下关键字段:
{
errMsg: '错误描述', // 例如:"cloud.callFunction:fail 云函数不存在"
errCode: 错误码, // 如 -404011(云函数不存在)
// 其他可能的调试信息
}
通过理解 success 和 fail 的分工,你可以更精准地处理云函数调用的成功和失败状态,提升用户体验!
更多推荐
所有评论(0)