Javascript 通过一个路由将多个mongo DB查询的结果发送到我的视图
我尝试使用简单的mongo db查询从数据库中获取两组数据。由于我使用2个查询,那么如何将这两个结果传递给视图?我当前收到一个内部服务器错误。我希望能够显示完整的监护人列表,然后显示他们在一个范围内的人数 多谢各位 这是我的密码:Javascript 通过一个路由将多个mongo DB查询的结果发送到我的视图,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我尝试使用简单的mongo db查询从数据库中获取两组数据。由于我使用2个查询,那么如何将这两个结果传递给视图?我当前收到一个内部服务器错误。我希望能够显示完整的监护人列表,然后显示他们在一个范围内的人数 多谢各位 这是我的密码: //show guardians router.get('/guardians', middleware.isAdmin, function (req, res) { //ShOW ADMIN ALL guardians User.find({ isA
//show guardians
router.get('/guardians', middleware.isAdmin, function (req, res) {
//ShOW ADMIN ALL guardians
User.find({ isAdmin: false }, function (err, guardian) {
if (err) {
console.log(err);
} else {
res.render('guardians', { guardian: guardian, currentUser: req.user });
}
});
//Count all guardians
User.countDocuments({isAdmin: false}, function (err, result) {
if (err) {
res.send(err);
} else {
var allGuardians = result;
res.render('guardians', { allGuardians: allGuardians });
}
});
});
您可以这样做:
router.get('/guardians', middleware.isAdmin, function (req, res) {
//ShOW ADMIN ALL guardians
let prom1 = User.find({ isAdmin: false })
//Count all guardians
let prom2 = User.countDocuments({isAdmin: false});
Promise.all([prom1, prom2]).then(result => {
// do your things
//results will be array and you can get
//response of prom1 in result[0]
//response of prom1 in result[1]
//pass the data to view
}).catch(err => {
//handle your error here
console.log(`Error : ${err}`);
})
});
谢谢,设法从prom2获取结果,我无法获取PROM1,尽管我得到以下错误:错误:TypeError[ERR\u INVALID\u ARG\u TYPE]:“path”参数必须是string类型。接收类型对象,如何将对象转换为字符串?JSON.stringify(发送对象);它会将它转换为字符串。这是我做的,但我仍然得到相同的错误var guarders=JSON.stringify(结果[0]);var allguarders=JSON.stringify(结果[1]);控制台日志(所有监护人);控制台日志(监护人);res.render({currentUser:req.user,guarders:guarders,allguarders:allguarders})`我知道我做错了什么我忘了进入“守护者”视图