AJV возвращает только одну ошибку, хотя есть несколько - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь использовать AJV с приведенным ниже кодом, когда я проверяю объект с несколькими ошибками, AJV выдает только одну ошибку за раз.

const schema = {
    type: 'object',
    properties: {
      name: {type: 'string', minLength: 1, maxLength: 1},
      sku: { type: 'string', minLength: 1, maxLength: 200},
    },
    required: ['name', 'sku']
  }

  const ajv = require('ajv');
  const validator = new ajv();

  const valid = validator.validate(schema, {});

  if (!valid) {
    console.log(validator.errors);
  }
Этот код должен выдавать две ошибки, поскольку требуется имя и номер SKU, но он возвращает только одну ошибку, проверьте вывод ниже:

[ { keyword: 'required',
    dataPath: '',
    schemaPath: '#/required',
    params: { missingProperty: 'name' },
    message: 'should have required property \'name\'' } ]

1 Ответ

1 голос
/ 29 мая 2019

Вам необходимо установить конфигурацию для этого.

Если вы получили все ошибки за один раз, то вы должны установить этот параметр объекта при создании объекта ajv {allErrors: true}

, здесь обновляется код.

const schema = {
    type: 'object',
    properties: {
        name: {type: 'string', minLength: 1, maxLength: 1},
        sku: { type: 'string', minLength: 1, maxLength: 200},
    },
    required: ['name', 'sku']
}

const ajv = require('ajv');
const validator = new ajv({allErrors:true});

const valid = validator.validate(schema, {});

if (!valid) {
  console.log(validator.errors);
}

Пожалуйста, проверьте эту ссылку для получения дополнительных параметров конфигурации.Ссылка https://github.com/epoberezkin/ajv#options

...