如何使用JADE显示和访问各个键值

时间:2014-04-19 21:53:19

标签: javascript node.js mongoose pug

当我遍历我的对象时,一切正常,我可以将它的所有实例呈现给页面。问题是我希望能够选择 一个特定的对象键,其中具有该键的每个对象都将其对应的值呈现给页面。

我的代码在下面有一个更明确的解释

Mongoose.js架构

var synthSchema = mongoose.Schema({
    patchName: String,
    synths: Object,

});

var SynthObject = mongoose.model('Synth', synthSchema);

Node.js / Express代码

var synthPatch = new SynthObject({})

synthPatch.synths = [{
        synth_name: "blah blah",
        xpos: 12,
        ypos: 23
    },

    {
        synth_name: "more blah blah",
        xpos: 02,
        ypos: 238
    },

]



synthPatch.save(function (err, ok) {
  if (err) return console.error(err);

});


app.get('/returnedData', function(req, res){
  SynthObject.find({}, function (err, docs) {
    res.render('returnedData', {
      title: 'Tasks index view',
      docs: docs
    });
  });
});

JADE

table.table

      each synth in docs
        tr
          td #{synth}

          ul

以上代码输出(来自MongoDB)

{ synths: [ 

    { synth_name: 'blah blah', xpos: 12, ypos: 23 }, 
    { synth_name: 'more blah blah', xpos: 2, ypos: 238 } 

  ],

 _id: 5352c4c46f5127d40e7ba8ec, __v: 0 

}

好到目前为止一切顺利。上面的代码正是我想要的,所以让我们遍历它并获取键和值

JADE代码

   each synthObject in docs
        tr
          each value, key in synthObject.synths
              each v, k in value
                  td #{k} #{v} 

完美......这会输出以下内容

ypos 23 xpos 12 synth_name 'blah blah'
ypos 238    xpos 2  synth_name  'more blah blah'

然而,现在我遇到了我的问题,我想从每个对象中选择所有 synth_name 之类的东西,并输出所有的synth_name 。我已经尝试了很多东西,但无法让它发挥作用。

2 个答案:

答案 0 :(得分:0)

我测试过: http://jade-lang.com/demo/

有效吗?我唯一的区别是使用'docs'代替给定mongo数据的'synths'。

玉石输入

table.table
each synth in docs
    tr
    td #{synth.synth_name}

<强>当地人

{ docs: [ 

    { synth_name: 'blah blah', xpos: 12, ypos: 23 }, 
    { synth_name: 'more blah blah', xpos: 2, ypos: 238 } 

  ],

 _id: "5352c4c46f5127d40e7ba8ec", __v: 0 

}

会产生:

<table class="table">
  <tr></tr>
  <td>blah blah</td>
  <tr></tr>
  <td>more blah blah</td>
</table>

答案 1 :(得分:0)

这似乎有效.....暂时

each synthObject in docs
      each item in synthObject.synths
              li #{item.synth_name} #{item.xpos} #{item.ypos}