函数访问数据库 get().data时总是获取失败?
发布于 5 年前 作者 fang25 2302 次浏览 来自 官方Issues

我尝试通过云函数访问数据库获取信息,结果发现返回get().data时总是获取失败

修改成直接返回get()就可以,但这显然不是我想要的结果,有什么办法能解决么

// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
 
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
 
  const db = cloud.database();
  const list = db.collection(event.listName);
  let count = await list.count();
 
  count = count.total;
  let data = [];
 
  for (let i = 0; i < count; i += 100) {
    data = data.concat(await list.skip(i).get().data);
  }
  return data;
 
}

使用get().data返回null

// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
 
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
 
  const db = cloud.database();
  const list = db.collection(event.listName);
  let count = await list.count();
 
  count = count.total;
  let data = [];
 
  for (let i = 0; i < count; i += 100) {
    data = data.concat(await list.skip(i).get());
  }
  return data;
 
}

使用get()获取成功

2 回复

JS的语法问题,把

await list.skip(i).get().data

改为

(await list.skip(i).get()).data

官方真快,正解。

回到顶部