Javascript 如何在自定义环回验证中提供动态消息?
来自文件:Javascript 如何在自定义环回验证中提供动态消息?,javascript,loopbackjs,Javascript,Loopbackjs,来自文件: User.validate('name', customValidator, {message: 'Bad name'}); function customValidator(err) { if (this.name === 'bad') err(); }); var user = new User({name: 'Peter'}); user.isValid(); // true user.name = 'bad'; user.isValid(); // false 验证
User.validate('name', customValidator, {message: 'Bad name'});
function customValidator(err) {
if (this.name === 'bad') err();
});
var user = new User({name: 'Peter'});
user.isValid(); // true
user.name = 'bad';
user.isValid(); // false
验证过程中是否有方法修改
消息
变量?例如,this.name=='bad'
消息是坏名称
,但当this.name=='very bad'
时,消息应该是very bad name
。如何做到这一点?突然出现了一个带有签名错误的addError
方法。添加(attr、message、code)
,因此:
User.validate('name', customValidator);
function customValidator(err) {
if (this.name === 'bad') {
this.errors.add('name', `Name is bad`, 'name.bad')
err();
}
if (this.name === 'very bad') {
this.errors.add('name', `Name is very bad`, 'name.very.bad')
err();
}
});
这是可行的,但请记住,您将拥有+1自定义的
代码和消息,请参阅下面的错误.details.code.name
和错误.details.messages.name
路径:
{
"error": {
"statusCode": 422,
"name": "ValidationError",
"message": "The `Entity` instance is not valid. Details: `name` Name is very bad (value: very bad).",
"details": {
"context": "Entity",
"codes": {
"name": [
"name.very.bad",
"custom"
],
},
"messages": {
"name": [
"Name is very bad",
"is invalid"
]
}
},
"stack": "..."
}
}