にリクエストを送信する/customers/41224d776a326fb40f000001
と、ドキュメントが_id
41224d776a326fb40f000001
存在しない場合は、doc
がnull
返されます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);
});
};
ただし、_id
Mongooseが「フォーマット」として想定しているものと一致しない場合(おそらく)GET /customers/foo
、奇妙なエラーが返されます。
CastError:パス "_id"の値 "foo"のObjectIdへのキャストに失敗しました。
それで、このエラーは何ですか?
_id
Mongooseスキーマで使用するタイプを1つだけ選択できます。では"bla"
場合、あなたはのタイプ使用するString
デフォルトの代わりにObjectId
、あなたは何を文字列にキャストできるよう、このチェックを追加する必要はありません。