我已经使用Mongoose定义了一个架构。对于名为type的特定字段,我有一个自定义验证。
type: {
type: String,
required: [function () { return !this.countable; }, 'Please specify a type for your uncountable ingredient.'],
validate: {
validator(val) {
return INGREDIENT_TYPES.includes(val)
&& !this.countable;
},
message(props) {
if (this.countable) {
return 'Ingredient is countable, type cannot be defined.';
}
return `${props.value} is not a valid type.`;
},
},
},
验证器取决于可计数的字段,该字段可以为true或false。
当成分不可计数并且我定义类型值时,会出现错误。但是,错误消息是“ ...不是有效的类型”,而它应该是“成分是可数的,无法定义类型。”
this.countable在validator()中定义,而不在message()中
如何在message()函数中获取可计数的字段值?