问题描述
我正在 joi 的帮助下尝试对象验证。 我想将对象验证为像
这样的对象内的约束let login = {
value: 0/1,slots: [{ label: '',value: '24 hr'},{ label: '',value: '24 hr'}]
}
这里的 login
是一个对象,其中的 slots
也是一个对象。所以如果我像下面这样写
const schema = Joi.object().keys({
value : Joi.number.required(),slots : Joi.string.required()
});
对象数据类型是否正确,还是应该用 string
数据类型替换 object
数据类型?
我想验证对象类型作为约束。
解决方法
您的 slots
键必须是一个对象数组:
const schema = Joi.object().keys({
value: Joi.number().required(),slots: Joi.array().items(
Joi.object().keys({
label: Joi.string().required().allow(''),value: Joi.string().required()
})
)
})
这样,以下对象将有效:
const obj = {
value: 1,slots: [
{
label: '',value: '24 hr'
}
]
}