Jade在"填充"的模板中呈现意外值。猫鼬属性

时间:2012-05-22 22:36:15

标签: node.js express mongoose pug

我有一个玉模板,我从猫鼬对象打印出属性。该对象具有通过mongoose的类似dbref的填充功能填充的属性。当模板呈现时,我得到废话。

简化示例:

在路线

User.findById(req.params.user, function(err, user){
  res.render('training', {training:user.training});
}).populate('training.details');

在模板中:

a.training-link(href='/training/#{training.details.id}') ...
浏览器中的

<a href="/training/O &gt;°Cm5�" class="training-link">...</a>

第一次加载页面时,我希望有一个常规的mongo十六进制字符串(4fac4e5f379cb0a68100015d),我会得到类似“O&gt;°Cm5 ”的内容。这仅在服务器重新启动后的第一页加载时发生。所有后续页面加载都按预期呈现。

这里发生了什么,我该如何解决?

感谢。

1 个答案:

答案 0 :(得分:0)

这有点令人尴尬,但我明白了。

我们的应用程序中有一个逻辑分支,由于各种原因,导致我上面的问题中的代码在第二次和后续加载时运行,但不在第一次加载。另一个仅在第一次加载时运行的分支进行类似的查询,但我没有向其添加populate('training.details')。我认为无意义字符串O¬N_7°¦�是在.id对象而不是填充的ObjectId上调用training.details的结果。

看起来我们需要重构一些代码。