有没有办法验证MongoDB ObjectId 而根本没有实际访问MongoDB数据库?例如,字符串值 "5c0a7922c9d89830f4911426" 应该为 "true" .
"5c0a7922c9d89830f4911426"
"true"
请注意,在几乎所有情况下,您只需处理 catch 而不必担心 ObjectID 的有效性,因为如果提供了无效的 ObjectId ,猫鼬会抱怨 throw .
catch
ObjectID
ObjectId
throw
Model.findOne({ _id: 'abcd' }).exec().catch(error => console.error('error', error));
除此之外,您可以使用mongoose.Types.ObjectId.isValid或正则表达式: /^[a-fA-F0-9]{24}$/
/^[a-fA-F0-9]{24}$/
您可以在ObjectId上使用.isValid()方法,尝试使用mongoose:
var mongoose = require('mongoose'); var isValid = mongoose.Types.ObjectId.isValid('5c0a7922c9d89830f4911426'); //true
2 回答
请注意,在几乎所有情况下,您只需处理
catch
而不必担心ObjectID
的有效性,因为如果提供了无效的ObjectId
,猫鼬会抱怨throw
.除此之外,您可以使用mongoose.Types.ObjectId.isValid或正则表达式:
/^[a-fA-F0-9]{24}$/
您可以在ObjectId上使用.isValid()方法,尝试使用mongoose: