如果缺少非必填字段,Mongoose 自定义验证器将失败
Mongoose custom validator fails if non-required field is missing
我正在使用 mongoose 模式,并为一些非必填字段编写了自定义验证程序。当该字段存在时验证器工作完美,但如果该字段缺失(这没关系,因为该字段未标记为 'required')则失败。
我的问题是:
- 这是正确的行为吗?
- 如果缺少该字段,我如何让它跳过验证?
您可以使用自定义验证器,因为它仅在值存在时调用。
另请参阅:
Mongoose validation: required : false, validate : regex, issues with empty values
发现问题:猫鼬模式包含 "default" 属性:
addr: {
type: String,
maxlength: [50, "max length for address"],
validate: {
validator: validators.validateAddress,
message: "address is invalid"
},
default: ""
},
如果出现这个属性,对象必须有'addr'字段,否则验证失败
我正在使用 mongoose 模式,并为一些非必填字段编写了自定义验证程序。当该字段存在时验证器工作完美,但如果该字段缺失(这没关系,因为该字段未标记为 'required')则失败。
我的问题是:
- 这是正确的行为吗?
- 如果缺少该字段,我如何让它跳过验证?
您可以使用自定义验证器,因为它仅在值存在时调用。
另请参阅: Mongoose validation: required : false, validate : regex, issues with empty values
发现问题:猫鼬模式包含 "default" 属性:
addr: {
type: String,
maxlength: [50, "max length for address"],
validate: {
validator: validators.validateAddress,
message: "address is invalid"
},
default: ""
},
如果出现这个属性,对象必须有'addr'字段,否则验证失败