При отправке запроса в адрес /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
не совпадает с тем, что ожидает Mongoose, как "формат" (я полагаю), например, GET /customers/foo
возвращается странная ошибка:
CastError: сбой преобразования в ObjectId для значения «foo» в пути «_id».
Так что это за ошибка?
_id
в своей схеме Mongoose. В"bla"
случае, если вы использовали бы типString
вместо значения по умолчанию,ObjectId
и вам не нужно было бы добавлять эту проверку, так как что угодно может быть преобразовано в строку.