マングースのfindById
メソッドはid
をキャストします モデルの_id
のタイプへのパラメーター 一致するドキュメントを適切にクエリできるように、フィールド。これはObjectIdですが、"foo"
は有効なObjectIdではないため、キャストは失敗します。
これは41224d776a326fb40f000001
では発生しません その文字列は有効なObjectIdであるためです。
これを解決する1つの方法は、findById
の前にチェックを追加することです。 id
かどうかを確認するために呼び出します 有効なObjectIdであるか、そうでないか:
if (id.match(/^[0-9a-fA-F]{24}$/)) {
// Yes, it's a valid ObjectId, proceed with `findById` call.
}