簡體   English   中英

如何在自定義環回驗證中提供動態消息?

[英]How provide dynamic message in custom loopback validation?

下面是從文檔:

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

有沒有辦法在驗證期間修改message變量? 例如, this.name === 'bad'消息是Bad name但是當this.name === 'very bad' ,消息應該是Very Bad name 如何做到這一點?

突然有一個帶有簽名errors.add(attr, message, code)addError方法,所以:

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();
    }
});

error.details.codes.name ,但是請記住,您將獲得+1 custom代碼和消息,請參閱下面的json error.details.codes.nameerror.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": "..."
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM