Al enviar una solicitud a /customers/41224d776a326fb40f000001
y un documento con _id
41224d776a326fb40f000001
no existe, doc
es null
y estoy devolviendo 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);
});
};
Sin embargo, cuando _id
no coincide con lo que Mongoose espera como "formato" (supongo), por ejemplo, GET /customers/foo
se devuelve un error extraño:
CastError: Error de conversión a ObjectId para el valor "foo" en la ruta "_id".
Entonces, ¿qué es este error?
_id
en su esquema de Mongoose. En el"bla"
caso de que use un tipo de enString
lugar del predeterminadoObjectId
y no necesitaría agregar esta verificación, ya que cualquier cosa se puede convertir en una cadena.