config.json
index.js - 业务逻辑
package.json
node_modules - 安装依赖时才有
event: 包含调用时传入的参数
context: 包含调用上下文信息,如 openid 和 appid,用于获取用户信息
// 1. 引入云开发SDK const cloud = require('wx-server-sdk') // 2. 初始化云环境 cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 3. 导出 main 函数(云函数入口) exports.main = async (event, context) => { const wxContext = cloud.getWXContext() // 函数逻辑 return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } }
// 调用云函数 wx.cloud.callFunction({ name: '函数名', data: { // 传递的参数 a: 1, b: 2 }, success: res => { console.log('调用成功', res) }, fail: err => { console.error('调用失败', err) }, complete: () => { console.log('调用结束') } })
wx.cloud.callFunction({ name: '函数名', data: {} }) .then(res => {}) .catch(err => {}) .finally(() => {})
const cloud = require('wx-server-sdk') cloud.init() // NOT // const db = cloud.database() exports.main = async (event, context) => { // 这里不需要使用 wx.cloud // 不建议放在外面 const db = cloud.database() try { // 查询数据 const result = await db.collection('users').get() return result } catch (error) { return { error } } }
const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { // 调用其他云函数 const result = await cloud.callFunction({ name: 'otherFunction', data: { param: 'value' } }) return result }
const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) exports.main = async (event, context) => { const db = cloud.database() const res = await db.collection(event.collection).get() return { data: res.data, } }
wx.cloud.callFunction({ name: 'loadData', data: { database: 'products' }, success: res => { console.log('load products', res.result); }, fail: err => { console.log(err); } })
const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { const { a, b } = event const sum = a + b return { sum } }
防止未捕获异常导致云函数崩溃
提供结构化的返回数据
记录服务器端错误日志
避免暴露敏感的系统错误信息
try { const res = await db.collection(event.collection).get() return { errCode: 200, errMsg: "get ok", data: res.data, } } catch (error) { console.log('error', error); return { errorCode: error.errCode || 'UNKNOWN_ERROR', errMsg: error.message || '服务异常' } }