我对如何通过Express最好地处理从一个源到另一个源的数据感到困惑。为了使这个尽可能短,我只是写一个关于我的问题的快速例子"。我已经尝试过阅读这篇文章,但由于这包含了很多部分,我已经在搜索中丢失了#34;在路上所以我认为我(可能)只是在问SO时会更好。
无论如何,让我们说我有一个像这样的MongoDB文档:
{
"_id" : ObjectId("xxxYYY"),
"cheese" : [
{
"value" : "true",
"key" : "bleu",
"table" : "cheeselist"
},
{
"value" : "true",
"key" : "gouda",
"table" : "cheeselist"
}
]
}
我"发送"通过我的控制器,将上面的奶酪设置为我的Mongo模型中的数组:
Cheese.find(function (err, docs) {
var CheeseChunks = [];
var chunkSize = 3;
for (var i = 0; i < docs.length; i += chunkSize) {
CheeseChunks.push(docs.slice(i, i + chunkSize));
}
res.render('api/index', {
url: req.url,
cheeses: CheeseChunks
});
})
最后,我在我的Jade模板中使用它:
each cheeseRow in cheeses
.row: each cheese in cheeseRow
.col-md-4
each key in cheese.cheese
p= JSON.stringify(key)
正如您所看到的,现在我看到值的唯一方法是对键进行字符串化,但后来我得到整个字符串而不仅仅是键值。我之所以感到困惑,主要是因为我认为我之前在工作流程中犯了一个错误,这使得它应该更加复杂。我是对的还是有一种简单的方法可以在Jade模板中解决它?或者我是否应该将字符串保存为MongoDB中的数组以外的其他内容?
提前致谢!
答案 0 :(得分:0)
这应该给出你想要的输出:
Jade
each cheeseRow in cheeses
.row: each cheese in cheeseRow.cheese
.col-md-4
p= cheese.value
.col-md-4
p= cheese.key
.col-md-4
p= cheese.table
输出:
<div class="row">
<div class="col-md-4">
<p>true</p>
</div>
<div class="col-md-4">
<p>bleu</p>
</div>
<div class="col-md-4">
<p>cheeselist</p>
</div>
<div class="col-md-4">
<p>true</p>
</div>
<div class="col-md-4">
<p>gouda</p>
</div>
<div class="col-md-4">
<p>cheeselist</p>
</div>
</div>