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

Posted

技术标签:

【中文标题】使用 mongodb 和 nodejs 将多个集合发送到一个 ejs 文件【英文标题】:Send multiple collections to one ejs file using mongodb and nodejs 【发布时间】:2021-01-18 13:21:24 【问题描述】:
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);
      
    );
);

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

【问题讨论】:

首先使用这两个结果集创建一个对象,然后将该对象与您的视图一起发送。我希望这能解决问题 【参考方案1】:

在您的获取响应中,您应该只在索引页面一起传递参数时呈现。

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

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

【讨论】:

以上是关于使用 mongodb 和 nodejs 将多个集合发送到一个 ejs 文件的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS API:通过“Id”属性将文档查找到集合中,而不是通过 Mongodb 中的“_id”默认值

nodejs/mongoDB - 类型错误:无法读取未定义的属性“集合”

nodejs/mongoDB - 类型错误:无法读取未定义的属性“集合”

使用 mongoose nodejs 过滤 mongodb 数据库

使用 mongodb 嵌入集合

Node.JS、Express 和 MongoDB :: 多个集合