เมื่อส่งคำขอไป/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: Cast to ObjectId ล้มเหลวสำหรับค่า "foo" ที่พา ธ "_id"
แล้วข้อผิดพลาดนี้คืออะไร?
_id
ในโครงสร้างพังพอนของคุณ ใน"bla"
กรณีนี้คุณจะใช้ประเภทของString
แทนค่าเริ่มต้นObjectId
และคุณไม่จำเป็นต้องเพิ่มการตรวจสอบนี้เนื่องจากสามารถส่งสิ่งใด ๆ ไปยังสตริงได้