Node.js 使用mongodb和nodejs将多个集合发送到一个ejs文件

Node.js 使用mongodb和nodejs将多个集合发送到一个ejs文件,node.js,mongodb,mongoose,collections,ejs,Node.js,Mongodb,Mongoose,Collections,Ejs,我只想获取多个集合的数据,然后将其传递到index.ejs文件,以便在那里使用这些数据。 我知道多次使用res.render()是行不通的,但我已经尝试过很多方法,比如将创建的数据保存到变量,创建这些对象等等,但都没有 工作。在get响应中,您应该只呈现一次索引页,将所有参数一起传递 app.get('/index', function(req, res){ Activities.find({}, function(err, activity){ if

我只想获取多个集合的数据,然后将其传递到index.ejs文件,以便在那里使用这些数据。 我知道多次使用res.render()是行不通的,但我已经尝试过很多方法,比如将创建的数据保存到变量,创建这些对象等等,但都没有
工作。

在get响应中,您应该只呈现一次索引页,将所有参数一起传递

app.get('/index', function(req, res){            
    Activities.find({}, function(err, activity){
      if(err){
          console.log(err);
      }else{
          res.render('index', {activities:activity});
      }
    });
    Upcoming.find({}, function(err, upcomingActivity){
      if(err){
          console.log(err);
      }else{
          res.render('index', {upcoming:upcomingActivity});
      }
    });
});

它将以这种方式工作,因为您只有几个集合,但另一种方法是将其作为全局对象传递,然后呈现它。

在get响应中,您应该只呈现一次索引页,将所有参数一起传递

app.get('/index', function(req, res){            
    Activities.find({}, function(err, activity){
      if(err){
          console.log(err);
      }else{
          res.render('index', {activities:activity});
      }
    });
    Upcoming.find({}, function(err, upcomingActivity){
      if(err){
          console.log(err);
      }else{
          res.render('index', {upcoming:upcomingActivity});
      }
    });
});

它将以这种方式工作,因为您只有几个集合,但其他方法是将其作为全局对象传递,然后进行渲染。

首先使用两个结果集生成一个对象,并将该对象与视图一起发送。我希望这将解决问题。首先使用两个结果集生成一个对象,并将该对象与视图一起发送。我希望这会解决问题解决问题