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