Quando si invia una richiesta a /customers/41224d776a326fb40f000001
e un documento con _id
41224d776a326fb40f000001
non esiste, doc
è null
e sto restituendo un 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);
});
};
Tuttavia, quando _id
non corrisponde a ciò che Mongoose si aspetta come "formato" (suppongo), ad esempio con GET /customers/foo
uno strano errore viene restituito:
CastError: Cast a ObjectId non riuscito per il valore "foo" nel percorso "_id".
Allora qual è questo errore?
_id
nel tuo schema Mongoose. Nel"bla"
caso in cui utilizzeresti un tipo diString
invece del predefinitoObjectId
e non avresti bisogno di aggiungere questo controllo poiché qualsiasi cosa può essere lanciata su una stringa.