Wenn das Senden einer Anfrage an /customers/41224d776a326fb40f000001
und ein Dokument mit _id
41224d776a326fb40f000001
nicht vorhanden ist, doc
ist null
und ich ein 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);
});
};
Wenn _id
jedoch nicht das übereinstimmt, was Mongoose als "Format" erwartet (nehme ich an), wird beispielsweise GET /customers/foo
ein seltsamer Fehler zurückgegeben:
CastError: Die Umwandlung in ObjectId ist für den Wert "foo" im Pfad "_id" fehlgeschlagen.
Was ist dieser Fehler?
_id
in Ihrem Mongoose-Schema verwendet werden soll. In dem"bla"
Fall würden Sie einen Typ vonString
anstelle des Standardtyps verwendenObjectId
und müssten diese Prüfung nicht hinzufügen, da alles in eine Zeichenfolge umgewandelt werden kann.