findById
Mongoose metoda rzutuje id
parametr do typu modelu _id
tak, aby mógł poprawnie wyszukać pasujący dokument. To jest ObjectId, ale "foo"
nie jest prawidłowym identyfikatorem obiektu, więc rzutowanie się nie powiedzie.
Tak się nie dzieje w przypadku 41224d776a326fb40f000001
ponieważ ten ciąg jest prawidłowym identyfikatorem obiektu.
Jednym ze sposobów rozwiązania tego problemu jest dodanie czeku przed findById
zadzwoń, aby sprawdzić, czy id
jest prawidłowym identyfikatorem ObjectId lub nie tak:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
// Yes, it's a valid ObjectId, proceed with `findById` call.
}