Ao enviar uma solicitação para /customers/41224d776a326fb40f000001
e um documento com _id
41224d776a326fb40f000001
não existe, doc
é null
e estou retornando um 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);
});
};
No entanto, quando _id
não corresponde ao que o Mongoose espera como "formato" (suponho), por exemplo, com GET /customers/foo
um erro estranho é retornado:
CastError: a conversão para ObjectId falhou para o valor "foo" no caminho "_id".
Então, qual é esse erro?
_id
em seu esquema Mongoose. No"bla"
caso, você usaria um tipo de emString
vez do padrãoObjectId
e não precisaria adicionar essa verificação, pois qualquer coisa pode ser convertida em uma string.