如何解决Joi 验证 ||在一个对象数组中,至少一个对象应该包含一个键的特定值
我需要以下对象数组的架构:
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 以适应您的代码,但这应该可行。它确保数组上至少有一个对象应该有一个答案并且它应该是真的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。