Node.js异步等待功能JSON

时间:2018-11-27 11:43:16

标签: node.js asynchronous async-await

我有点问题。我想在以下类中发送res.json:postQuery.room。但这是在类中发送的:未定义,为什么?

路线获取

app.get('/', async function (req, res) {
   const pageSize = +req.query.pagesize;
   const page = +req.query.page;
   if (pageSize && page) {
       postQuery = await Classe.find({}).skip(pageSize * (page - 1)).limit(pageSize);
   }
   const nbClasses = await Classe.count({});
   res.json({ success: true, message: "Classes fetched successfully!", classes: postQuery.room, total: nbClasses });
});
如果在res.json =>类中使用,则

postQuery返回:postQuery

{
   "success": true,
   "message": "Classes fetched successfully!",
   "classes": [
       {
           "_id": "5bfd26072b9d9c33005b58c2",
           "room": "NodeJs",
           "createdAt": "2018-11-27T11:09:59.077Z",
           "updatedAt": "2018-11-27T11:09:59.077Z",
           "__v": 0
       }
   ],
   "total": 11
}

1 个答案:

答案 0 :(得分:3)

我想你已经错过了

await Classe.find(...)...

返回一个数组,注意您的回答中的方括号。可能有帮助的是:

{..., classes: postQuery.map(a=>a.room), ...}

希望这会有所帮助。