Express:如何将多个记录发送到视图并访问它

时间:2015-10-19 07:17:26

标签: node.js mongodb express

我正在使用ExpressMongo中开发一个应用程序。我要做的是从records读取多个db并将其发送到view。我必须在rendertable router。这是我到目前为止所做的:

我的router.route('/dashboard').get(function (req, res, next) { res.format({ html: function () { mongoose.model('Register').find({'userid': req.session.email}, function (err, users) { var userMap={}; users.forEach(function(user){ userMap[user._id]=user; }); res.json(userMap); }); } }); });

table
  tbody
    tr
      td #{user.pid}
      td #{user.sid}
      td #{user.rfname}
      td #{user.des}

以下是我在视图中的内容: enter image description here

我想在视图中渲染它:

record

我参考this,但它没有说明如何访问view中的每个EntityManager?有什么帮助吗?

3 个答案:

答案 0 :(得分:4)

而不是尝试这样,所以你将所有数据都放入用户对象res.json({user:userMap});这样您就可以使用用户对象访问它。因此,使用该对象可以访问user [0] .pid

等元素
router.route('/dashboard').get(function (req, res, next) {   
  mongoose.model('Register').find({'userid': req.session.email},function (err, users) { 
  var userMap={}; 
  users.forEach(function(user){ 
    userMap[user._id]=user; 
  });
  res.render('myviewname',{user:userMap});
  }); 
});

答案 1 :(得分:1)

将res.send()替换为res.json(),以便将json对象放入视图中。

答案 2 :(得分:0)

如果使用的是Express Generator或类似的dir结构,则可以将来自控制器的数据作为对象传递给视图,并使用for循环遍历每个记录并在视图中打印。查看下面的示例以获得更好的主意:

routes / users.js(控制文件)

/* GET users listing. */
router.get('/', async (req, res) => {
   const userData = await UserModel.find({}); // I'm using mongoose schema and model
   res.render('user', {userData: userData}); 
});

views / user.jade(查看文件)

table(border='1')
    tbody
    tr
        th First Name
        th Last Name
        th Email
        th Phone
    for user in userData
        tr
            td #{user.firstName}
            td #{user.lastName}
            td #{user.email}
            td #{user.phone}

这是我的数据:

[{ "_id" : ObjectId("5f9665e318ec5a064a7ae4ad"), "firstName" : "Anil", "lastName" : "Raj", "email" : "anil@gmail.com", "phone" : "7861171771", "password" : "123456" },                                                                                                                                                   { "_id" : ObjectId("5f966eb518ec5a064a7ae4ae"), "firstName" : "Arun", "lastName" : "Raj", "email" : "arun@gmail.com", "phone" : "7861171773", "password" : "123456" }]