Joi Validation - Проверять массив, даже если только один элемент соответствует схеме - PullRequest
1 голос
/ 31 марта 2020

Я хотел бы проверить массив объектов. И joi должен проверять весь массив, даже если только один элемент массива соответствует схеме, и отклонять, только если все элементы не соответствуют схеме для exmaple: schema:

Joi.object({
  data: Joi.array()
    .items(Joi.object({a: Joi.number(), b: Joi.string()})) 
})

Это должно пройти проверку joi: [{a:23, b: "Ddd"}, {a:23, b: 34}]

Для проверки массива должно быть достаточно только одной проверки элемента массива.

Это не должно проходить проверку:

[{a:23, b: 23}, {a:23, b: 34}]

Над всеми элементами массива не проходит проверку, следовательно, проверка массива также не проходит.

Спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Я могу решить мою проблему с помощью опции stripUnknown.

Joi.object({
  data: Joi.array()
    .items(Joi.object({a: Joi.number(), b: Joi.string()}))
    .options({ stripUnknown: { arrays: true } })
})

Выше кода удаляет недопустимые элементы массива и выдает ошибку, если ни один элемент не проходит проверку, если требуется схема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...