Gdy wysyłam zapytanie do, /customers/41224d776a326fb40f000001a dokument z którym _id 41224d776a326fb40f000001nie ma, docto nulli 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 _idnie odpowiada temu, czego oczekuje Mongoose jako „format” (przypuszczam), na przykład z GET /customers/foodziwnym 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?
_idw schemacie Mongoose. W"bla"przypadku, gdy użyjesz typuStringzamiast domyślnegoObjectIdi nie będziesz musiał dodawać tego sprawdzenia, ponieważ wszystko może zostać rzutowane na łańcuch.