我对Node.js相当陌生,我正在尝试为async / await中的“获取所有用户”页面建立分页功能。但是我似乎遇到了障碍,并且经过广泛的研究(在这里,其他资料甚至是教程),我仍然无法提出解决方案。我所见过的所有解决方案都向我展示了两种方法。这是代码:
mongoOp.countDocuments({},function(err,totalCount) {
if(err) {
response = {"error" : true,"message" : "Error fetching data"}
}
mongoOp.find({},{},query,function(err,data) {
// Mongo command to fetch all data from collection.
if(err) {
response = {"error" : true,"message" : "Error fetching data"};
} else {
var totalPages = Math.ceil(totalCount / size)
response = {"error" : false,"message" : data,"pages": totalPages};
}
res.json(response);
});
});
我已经弄清楚了如何在异步/等待中同时写入countDocuments()和find()函数,以产生结果,如下所示发送正确的json响应:
countDocuments()函数
try {
totalDocs = await mongoOp.countDocuments();
return res.status(200).json({totalDocs})
} catch (err) {
return res.send(err)
}
};
find()查询:
try {
const users = await mongoOp.find({}, {}, query);
return res.status(200).json({
status: users
});
} catch (error) {
return res.status(400).send(error);
}
但是,我不知道如何将它们组合在一起以产生所需的结果。如果能得到我的帮助,我将不胜感激。
您似乎正在寻找
try {
const totalCount = await mongoOp.countDocuments();
const totalPages = Math.ceil(totalCount / size)
const data = await mongoOp.find({}, {}, query);
return res.status(200).json({"error":false, "message":data, "pages":totalPages});
} catch (err) {
return res.status(500).json({"error":true, "message":"Error fetching data"});
}