findById
di Mongoose il metodo esegue il cast di id
parametro al tipo di _id
del modello campo in modo che possa eseguire correttamente la query per il documento corrispondente. Questo è un ObjectId ma "foo"
non è un ObjectId valido, quindi il cast non riesce.
Questo non accade con 41224d776a326fb40f000001
perché quella stringa è un ObjectId valido.
Un modo per risolvere questo problema è aggiungere un controllo prima del tuo findById
chiama per vedere se id
è un ObjectId valido o meno:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
// Yes, it's a valid ObjectId, proceed with `findById` call.
}