当向发送请求到/customers/41224d776a326fb40f000001
和文档_id
41224d776a326fb40f000001
不存在时,doc
is,null
并且我返回404
:
Controller.prototype.show = function(id, res) {
this.model.findById(id, function(err, doc) {
if (err) {
throw err;
}
if (!doc) {
res.send(404);
}
return res.send(doc);
});
};
但是,当_id
与猫鼬期望的“格式”(我想)不匹配时,例如GET /customers/foo
返回一个奇怪的错误:
CastError:在路径“ _id”处,对于值“ foo”的转换为ObjectId失败。
那么这是什么错误呢?
_id
在Mongoose模式中使用的类型。在这种"bla"
情况下,您将使用类型String
而不是默认类型,ObjectId
并且您无需添加此检查,因为可以将任何内容强制转换为字符串。