9

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

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

2 回答 2

18

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

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

这将适用于以下有效负载:

{
    substitutions: {
        blah   : 'string',
        test123: 123,
        example: true,
    }
}
于 2017-09-07T10:01:23.997 回答
-1

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

您的架构如下所示:

const schema = {
    substitutions: Joi.object().keys({
        somekey: Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean())
    })
};
于 2017-03-16T20:29:33.527 回答