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