У меня есть такая настройка вложенной схемы:
var schema = Joi.object().keys({
first_name: Joi.string().required(),
last_name: Joi.string().required(),
address: Joi.object().keys({
street: Joi.string().required(),
zip: Joi.number().required(),
state: Joi.string().required(),
country: Joi.string().required()
}).required(),
})
var options = { abortEarly: false };
var result = Joi.validate({}, schema, options);
При запуске result.error
вернет сообщение:
[
{message: '"first_name" is required', path: 'first_name' },
{message: '"last_name" is required', path: 'last_name' },
{message: '"address" is required', path: 'address' }
]
Как видите, поле address
не расширяется. Я не хочу получать сообщение об отсутствии всего поля адреса. Вместо этого я хочу быть проинформированным об отсутствии отдельных элементов в схеме адреса. Когда я не делаю address
явно обязательным, элементы в нем вообще не проверяются на required()
. Проверка вложенного поля, похоже, работает только на уровне объекта вложенной схемы в целом, а не на отдельных элементах на уровне схемы. Как заставить его работать с отдельными элементами вложенной схемы?