Khi gửi một yêu cầu đến /customers/41224d776a326fb40f000001và một tài liệu với _id 41224d776a326fb40f000001không tồn tại, doclà nullvà tôi trở lại một 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);
});
};
Tuy nhiên, khi _idkhông khớp với những gì Mongoose mong đợi là "định dạng" (tôi cho là), ví dụ như với GET /customers/foomột lỗi lạ được trả về:
CastError: Không thể truyền tới ObjectId cho giá trị "foo" tại đường dẫn "_id".
Vậy đây là lỗi gì?
_idtrong lược đồ Mongoose của mình. Trong"bla"trường hợp bạn sử dụng kiểuStringthay vì kiểu mặc địnhObjectIdvà bạn sẽ không cần thêm dấu kiểm này vì mọi thứ đều có thể được truyền thành chuỗi.