我将我的模型返回到我的观点:
User.findOneById('xxx', function(err, result){
res.render('viewName', {user: result});
}
然后,在我看来,我有一个脚本块,我正在尝试将user
分配给变量:
<script id="foundBusiness" type="text/javascript">
var user = <%-user%>
</script>
这将呈现如下HTML
var user = { __v: 0,
_id: 5315b7b9caaf52e624070002,
firstName: 'Alex',
lastName: 'Brown',
password: '$2a$10$Zs/6JmB3Rq5dddHvjZNUse9vl.8z3hJO.LUGBqMEE.vBMk4lVuav.'}
我的问题出在_id
字段左右
这显然不是有效的Javascript,因此会发生错误:
SyntaxError:意外的标记ILLEGAL
我做错了什么?
答案 0 :(得分:1)
从马的嘴里
ObjectIds包含原始MongoDB二进制文件,不能使用模板化,因此我们提供了id方便方法将它们转换为hexstrings
https://github.com/LearnBoost/mongoose/issues/548
一种可能的解决方案 -
User.findOneById('xxx', function(err, result){
result._id = result._id.toHexString();
res.render('viewName', {user: result});
}
我认为将它分配给result.id也可以。
result._id = result.id;