// 云函数入口文件 const cloud = require(‘wx-server-sdk‘) cloud.init() // 云函数入口函数 const db = cloud.database() // 云函数访问数据库上限为100 const MAX_LIMIT = 100 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const listname = event.listName // 先取出集合记录总数 const countResult = await db.collection(listname).count() const total = countResult.total // 计算需分几次取 const batchTimes = Math.ceil(total / 100) // 承载所有读操作的 promise 的数组 const tasks = [] for (let i = 0; i < batchTimes; i++) { const promise = db.collection(listname).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get() tasks.push(promise) } // 等待所有 return (await Promise.all(tasks)).reduce((acc, cur) => { return { data: acc.data.concat(cur.data), errMsg: acc.errMsg, openid:wxContext.OPENID } }) }
2.调用云函数
方法一:直接调用
wx.cloud.callFunction({ // 云函数名称 name: ‘add‘, // 传给云函数的参数 data: { a: 1, b: 2, }, }) .then(res => { console.log(res.result) // 3 }) .catch(console.error)
方法二:封装到utils.js,进行调用.
const getData = (sqlName) => { } ? module.exports = { getData: getData }