繁体   English   中英

在一条路线中将多个 mongo DB 查询的结果发送到我的视图

[英]Sending results from multiple mongo DB queries in one route to my view

我正在尝试使用简单的 mongo db 查询从我的数据库中获取 2 组数据。 由于我使用 2 个查询,我该如何将两个结果都传递给视图? 我目前收到内部服务器错误。 我希望能够显示整个监护人列表,然后显示他们在一个跨度内有多少。

非常感谢

这是我的代码:

//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}`);
   })
            
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM