Я пытался, пытался, но не могу понять :(
Это объект, который мне нужно проверить:
let body = {
greeting:
{
stringValue: 'Hello !',
stringListValues: [],
binaryListValues: [],
dataType: 'String'
},
newsletterId:
{
stringValue: '123456789',
stringListValues: [],
binaryListValues: [],
dataType: 'String'
}
};
Мне нужно проверить, что существует приветствие, что у него есть ключ строковое значение, и он не пуст. Остальные ценности меня не интересуют.
Кроме того, для второго объекта идентификатор информационного бюллетеня, который также имеет ключ строковое значение и не является пустым. Остальные ценности меня не интересуют.
Я придумал проверку только корневого объекта с помощью этой схемы:
const schema = {
greeting: Joi.required(),
newsletterId: Joi.required()
};
Я прочитал много примеров, но не смог найти ни одного с такой структурой.
🤔 А знаете ли вы, что...
JavaScript обеспечивает обработку ошибок с использованием конструкции try...catch.
давайте определим схему:
const schema = Joi.object().keys({
greeting: Joi.object({
stringValue: Joi.string().required().empty(['', null]),
stringListValues: Joi.array().items(Joi.string()),
binaryListValues: Joi.array().items(Joi.binary())
}).required(),
newsletterId: // same as above
});
и протестировать так:
Joi.validate(myObjectToTest, schema, function(error, cleanObject){
console.info(error, cleanObject);
})
Полный справочник можно найти здесь https://github.com/hapijs/joi/blob/master/API.md