Javascript 如何使用joi验证对象中的对象约束?

Javascript 如何使用joi验证对象中的对象约束?,javascript,node.js,validation,object,joi,Javascript,Node.js,Validation,Object,Joi,我正在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(),

我正在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()
});
对象数据类型是正确的还是我应该用
对象
数据类型替换
字符串
数据类型?
我想验证对象类型作为约束。

您的
插槽
键需要是一个对象数组:

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'
        }
    ]
}