Node.js - Jade视图中的嵌套数组

时间:2011-09-29 20:14:14

标签: node.js express mongoose pug

使用Mongoose,我有一个带有嵌入式Feeds模型的模型页面。当我转到/ pages时,page.title会显示每个页面,但Feed数据却不会显示。我该如何修改此代码以正确显示feeds数组中的数据?万分感谢

db.pages exmaple:

{ "title" : "testing feeds", "_id" : ObjectId("123456"), "feeds" : [
{ "0" : { "name" : "twitter", "key" : "1234" },
  "1" : { "name" : "flickr", "key" : "5678" },
}] }

web.js

app.get('/pages.:format?', function(req, res) {
  Page.find({}, function(err, pages) {
    switch (req.params.format) {
      case 'json':
        res.send(pages.map(function(d) {
          return d.toObject();
        }));
      break;

      default:
        res.render('pages/index.jade', {
          locals: { 
              title: 'ClrTouch | Pages',
              pages: pages,
              feeds: pages.feed,
          }
        });
    }
  });
});

视图

- each page in pages
  div.page
    div.pagetitle= page.title
      ul
      - each feed in page.feeds
        li.pagefeedname= feed.name
        li.pagefeedkey= feed.key

使用我所拥有的,在视图中生成一个列表,但列表项为空。感谢。

2 个答案:

答案 0 :(得分:0)

您在这里的模型是否也在测试?如果是这样,那么生成列表但没有显示任何内容的原因是因为您当前没有值。

li.pagefeedname=feed.name =“0”:{“name”:“”,“key”:“”}

尝试为您的Feed名称/键添加一些值,并查看其效果如何。

否则你应该有什么工作

答案 1 :(得分:0)

tuddy,   我建议你尝试这样:

   Page.find().lean().exec(function(err,pages){
   // TODO
  });