我正在尝试将一组约束重写为一个验证器,该验证器应返回单个(第一个找到的)错误而不是所有错误。现在,我有以下代码,当提供一个空字符串时,将返回两个错误(出现和发送电子邮件):
email: {
presence: {
message: ValidationErrors.EMAILMISSING
},
email:{
message: ValidationErrors.EMAILINVALID
},
length: {
maximum: 128,
tooLong: ValidationErrors.EMAILTOOLONG
}
},
我要做的是编写一个自定义验证器,该验证器使用当前存在的验证器(状态,电子邮件和长度),但仅返回第一个发现的错误。这样的东西(下面的伪代码):
email: value => {
if (!value) {
return ValidationErrors.EMAILMISSING;
}
if (value.length > 128) {
return ValidationErrors.EMAILTOOLONG;
}
if (value.isEmail()) {
return ValidationErrors.EMAILINVALID;
}
},
当然,在当前情况下,我可以通过仅获取validate.async()
返回的错误数组的第一条记录来实现相同的逻辑。我想知道是否可以使用自定义验证器中的现有验证器,是否需要将它们用于更复杂的验证逻辑。
我不确定我是否能够很好地解释我的问题,如果我可以提供更多信息,请询问详细信息。