Подтвердить что ты не робот

Как проверить массив объектов с помощью Joi?

Я получаю массив объектов для бэкэнд, где каждый объект содержит имя службы. Структура выглядит ниже

[{"serviceName":"service1"},
{"serviceName":"service2"},..]

когда я получаю массив на бэкэнд, я хочу проверить, что каждый объект в массиве имеет свойство serviceName.

Я написал следующий код, но даже если я передаю действительный массив, я получаю ошибку проверки.

var Joi = require('joi');
var service = Joi.object().keys({
  serviceName: Joi.string().required()
});

var services = Joi.array().ordered(service);

var test = Joi.validate([{serviceName:'service1'},{serviceName:'service2'}],services)

Для вышеуказанного кода я всегда получаю ошибку проверки с сообщением

"value" at position 1 fails because array must contain at most 1 items
4b9b3361

Ответ 1

замена заказанных предметов будет работать.

let Joi = require('joi')
let service = Joi.object().keys({
  serviceName: Joi.string().required(),
})

let services = Joi.array().items(service)

let test = Joi.validate(
  [{ serviceName: 'service1' }, { serviceName: 'service2' }],
  services,
)

Для справки нажмите здесь