Как проверить массив объектов с помощью 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
Ответы
Ответ 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,
)
Для справки нажмите здесь