Joi - 验证对象键和值?

时间:2017-03-14 23:10:57

标签: joi

我如何使用Joi验证替换字段是否具有零个或多个键/值对?并且每个键都是一个字符串,每个值都是一个字符串,数字或bool?

"substitutions": {
    "somekey": "someval",
    "somekey": "someval"
  }

2 个答案:

答案 0 :(得分:6)

您可以使用Joi.object().pattern()

{
    substitutions: Joi.object().pattern(/.*/, [Joi.string(), Joi.number(), Joi.boolean()])
}

这适用于以下有效负载:

{
    substitutions: {
        blah   : 'string',
        test123: 123,
        example: true,
    }
}

答案 1 :(得分:0)

要允许某个键匹配多​​种类型,您需要使用Joi.alternatives()

您的架构看起来像:

const schema = {
    substitutions: Joi.object().keys({
        somekey: Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean())
    })
};
相关问题