Lors de l'envoi d'une demande à /customers/41224d776a326fb40f000001
et un document avec _id
41224d776a326fb40f000001
n'existe pas, doc
est null
et je retourne 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);
});
};
Cependant, quand _id
ne correspond pas à ce que Mongoose attend comme "format" (je suppose) par exemple avec GET /customers/foo
une erreur étrange est retourné:
CastError: échec de la conversion en ObjectId pour la valeur "foo" au chemin "_id".
Alors, quelle est cette erreur?
_id
dans votre schéma Mongoose. Dans le"bla"
cas où vous utiliseriez un type deString
au lieu de la valeur par défautObjectId
et vous n'auriez pas besoin d'ajouter cette vérification car tout peut être converti en chaîne.