在Jade迭代Mongoose属性
问题描述:
我试图从一个Mongoose对象输出属性列表,但我也得到了很多Javascript辅助函数。我想知道是否有一个干净的方式来输出我的Mongoose模式属性。在Jade迭代Mongoose属性
我的玉显示的代码如下所示:
h4 Legacy data
ul
- each val, key in d.old
li= key + ": " + val
我的猫鼬的模式定义为
Entry = new Schema({
old : {
submitter : String,
table : String,
wordid : Number
}
});
但当页面呈现,还有一帮其他的JavaScript性能和功能得到同时输出。例如
_scope: [object Object]
toObject: function() { return this.get(path); }
wordid: 2035
...
是否有一种简单的方法来迭代通过我的模式的属性? 我可以使用指定的列表,但我想知道是否有更好的方法。
其实我该怎么写指定的方式呢?在红宝石中,我知道我可以做[ 'wordid', 'submitter' ].each
,但是在Jade中有没有相当于?
答
您遇到对象的原型属性。您可以筛选出来与.hasOwnProperty
- each val, key in d.old
- if(d.old.hasOwnProperty(key))
li= key + ": " + val
答
请记住,您也可以使用该方法toJSON
的文件(mongoose doc of Document#toJSON)获取可在模板中使用的清洁JSON对象(而不必担心猫鼬文档的内部和方法)。实际上,您提到的toObject
方法与toJSON
类似,您可能想要check it out。
例如:
doc = EntryModel({old: {submitter: "s", table: "tableS", wordid: "666"}})
console.log(b.toJSON())
// outputs:
{
"_id": "51fea037434b242816000002",
"old": {
"submitter": "s",
"table": "tableS",
"wordid": 666
}
}
// Is a plain JSON object without any other property or method