ajv-errors - Как определить сообщения об ошибках для свойств - PullRequest
0 голосов
/ 21 марта 2019

Я начал использовать AJV (https://github.com/epoberezkin/ajv) вместе с ошибками AJV (https://www.npmjs.com/package/ajv-errors)), и я пытаюсь выяснить, как я могу настроить ошибки для достижения некоторого формата, к которому я привык.

Я проверяю входные данные JSON из регистрационной формы. Мой старый код возвращал ошибки в таком формате:

{
  "firstname": "Firstname is required field",
  "lastname": "Lastname must be longer than 0 chars",
  "...":...
}

Я изменил свою старую валидацию (я просто проверял поле за полем с Validator.JS) на валидатор AJV, потому что мне нужно блокировать, когда больше реквизитов, чем требуется (для защиты базы данных).

Моя проблема, когда я использую эту схему:

{
 type: "object",
 properties: {
  firstname: {
   type: "string",
  },
  lastname: {
    type: "string",
  },
 },
 additionalProperties: false,
 required: ["firstname", "lastname"],
  "errorMessage": {
   "properties": {
    firstname: "Bad format"
   },
   "required": {
    firstname: "This is shown in errors but does not have dataPath"
   }
 }
}

А не заполнять например firstname поле. Я получаю сообщение об ошибке, но без dataPath, поэтому я не могу связать это сообщение об ошибке с правильным полем для генерации ожидаемого ответа.

Есть ли какое-то решение?

...