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 || '服务异常'
  }
}