我们说我有User
这样的模型
var userSchema = new Schema({
username : String,
email : String,
project : {type : String, ref : "Project"}
});
和User
这样的文档。
{
"_id" : ObjectId("56df56c58a4d47c83bf41603"),
"username" : "user1",
"email" : "email@example.com",
"project" : "",
"__v" : 1
}
如果我执行以下操作,则页面永远不会加载。
User.findById("56df56c58a4d47c83bf41603").populate("project").exec()
.then(function(userObj) {
res.render('user', {
user : userObj
});
});
如果那里有实际的ObjectID,它可以正常工作,但是当它是空白时则不行。
如果值中没有ObjectID,是否可以默认为null?
答案 0 :(得分:1)
所以这个问题的答案就在这里:
Mongoose: CastError: Cast to ObjectId failed for value "[object Object]" at path "_id"
空字符串将抛出强制转换错误。您没有从基于承诺的呼叫中捕获异常,因此您的路线已超时。
课程是捕获异常。就像你使用回调一样。