我如何使用 Joi 验证替换字段有零个或多个键/值对?并且每个键都是一个字符串,每个值是一个字符串、数字还是布尔值?
"substitutions": {
"somekey": "someval",
"somekey": "someval"
}
我如何使用 Joi 验证替换字段有零个或多个键/值对?并且每个键都是一个字符串,每个值是一个字符串、数字还是布尔值?
"substitutions": {
"somekey": "someval",
"somekey": "someval"
}
您可以使用Joi.object().pattern():
{
substitutions: Joi.object().pattern(/.*/, [Joi.string(), Joi.number(), Joi.boolean()])
}
这将适用于以下有效负载:
{
substitutions: {
blah : 'string',
test123: 123,
example: true,
}
}
要允许一个键匹配多种类型,您需要使用Joi.alternatives()。
您的架构如下所示:
const schema = {
substitutions: Joi.object().keys({
somekey: Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean())
})
};