我正在使用猫鼬模式,并为一些非必需字段编写了一个自定义验证器。验证器在存在该字段时可以正常工作,但是在缺少该字段时会失败(这是可以的,因为该字段未标记为“必填”)。
我的问题是:
答案 0 :(得分:1)
您可以使用自定义验证器,因为只有在值存在时才调用它。
另请参阅: Mongoose validation: required : false, validate : regex, issues with empty values
答案 1 :(得分:0)
发现问题:猫鼬模式包含“默认”属性:
addr: {
type: String,
maxlength: [50, "max length for address"],
validate: {
validator: validators.validateAddress,
message: "address is invalid"
},
default: ""
},
如果出现此属性,则对象必须具有“ addr”字段,否则验证将失败。