我有一个玉模板,我从猫鼬对象打印出属性。该对象具有通过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 >°Cm5�" class="training-link">...</a>
第一次加载页面时,我希望有一个常规的mongo十六进制字符串(4fac4e5f379cb0a68100015d),我会得到类似“O&gt;°Cm5 ”的内容。这仅在服务器重新启动后的第一页加载时发生。所有后续页面加载都按预期呈现。
这里发生了什么,我该如何解决?
感谢。
答案 0 :(得分:0)
这有点令人尴尬,但我明白了。
我们的应用程序中有一个逻辑分支,由于各种原因,导致我上面的问题中的代码在第二次和后续加载时运行,但不在第一次加载。另一个仅在第一次加载时运行的分支进行类似的查询,但我没有向其添加populate('training.details')
。我认为无意义字符串O¬N_7°¦�
是在.id
对象而不是填充的ObjectId
上调用training.details
的结果。
看起来我们需要重构一些代码。