При відправці запиту /customers/41224d776a326fb40f000001
і документа з _id
41224d776a326fb40f000001
не існує, doc
це 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: Cast to ObjectId не вдалося для значення "foo" на шляху "_id".
То в чому ця помилка?
_id
у вашій схемі Mongoose. У"bla"
випадку, якщо ви використовуєте типString
замість за замовчуванням,ObjectId
і вам не потрібно буде додавати цей чек, оскільки все може бути передано до рядка.