gpt4 book ai didi

node.js - Jade 在模板中渲染 "populated" Mongoose 属性的意外值

转载 作者:太空宇宙 更新时间:2023-11-04 02:43:17 26 4
gpt4 key购买 nike

我有一个 Jade 模板,我正在其中打印 Mongoose 对象的属性。该对象具有通过 mongoose 的类似 dbref 的填充功能填充的属性。当模板呈现时,我得到了废话。

简化示例:

在 route

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 >°Cm5�”的内容。这仅发生在服务器重新启动后的第一页加载时。所有后续页面加载均按预期呈现。

这里发生了什么以及如何修复它?

谢谢。

最佳答案

这有点尴尬,但我想通了。

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

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

关于node.js - Jade 在模板中渲染 "populated" Mongoose 属性的意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com