findById
của Mongoose phương thức truyền id
tham số cho loại _id
của mô hình để nó có thể truy vấn đúng tài liệu phù hợp. Đây là một ObjectId nhưng "foo"
không phải là ObjectId hợp lệ nên quá trình truyền không thành công.
Điều này không xảy ra với 41224d776a326fb40f000001
bởi vì chuỗi đó là một ObjectId hợp lệ.
Một cách để giải quyết vấn đề này là thêm séc trước findById
của bạn gọi để xem id
là một ObjectId hợp lệ hay không giống như vậy:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
// Yes, it's a valid ObjectId, proceed with `findById` call.
}