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": "..."
  }
}