findById
на Mongoose метод прехвърля id
параметър към типа на _id
на модела поле, така че да може правилно да потърси съответстващия документ. Това е ObjectId, но "foo"
не е валиден ObjectId, така че прехвърлянето е неуспешно.
Това не се случва с 41224d776a326fb40f000001
защото този низ е валиден ObjectId.
Един от начините да разрешите това е да добавите проверка преди вашия findById
обадете се, за да видите дали id
е валиден ObjectId или не е така:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
// Yes, it's a valid ObjectId, proceed with `findById` call.
}