Gdy wysyłam zapytanie do, /customers/41224d776a326fb40f000001
a dokument z którym _id
41224d776a326fb40f000001
nie ma, doc
to null
i zwracam 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);
});
};
Jeśli jednak _id
nie odpowiada temu, czego oczekuje Mongoose jako „format” (przypuszczam), na przykład z GET /customers/foo
dziwnym błędem jest zwracany:
CastError: Przesyłanie do ObjectId nie powiodło się dla wartości „foo” w ścieżce „_id”.
Więc co to za błąd?
_id
w schemacie Mongoose. W"bla"
przypadku, gdy użyjesz typuString
zamiast domyślnegoObjectId
i nie będziesz musiał dodawać tego sprawdzenia, ponieważ wszystko może zostać rzutowane na łańcuch.