// 云函数入口函数
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 的分工,你可以更精准地处理云函数调用的成功和失败状态,提升用户体验!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐