问题描述
我需要以下对象数组的架构:
option = [
{
answer: '',isTrue: false
},{
answer: '',isTrue: true
},]
到目前为止,我写了以下架构:
Joi.array().items(Joi.object({
answer: Joi.string().required(),isTrue: Joi.boolean().required()
}).unkNown()).min(2).required()
问题:我需要验证至少一个对象的“isTrue”键值为“true”(布尔值)
解决方法
let optionsValidation = Joi.object().keys({
answer: Joi.string().required(),isTrue: Joi.boolean().required()
});
//replace with your field name
options: Joi.array()
.items(optionsValidation)
.has(
Joi.object().keys({
answer: Joi.string().required(),isTrue: Joi.boolean().invalid(false).required();
}),)
也许您需要更改 smth 以适应您的代码,但这应该可行。它确保数组上至少有一个对象应该有一个答案并且它应该是真的。