有没有办法验证Joi架构中的动态密钥名称?

时间:2017-03-27 15:46:08

标签: javascript validation joi

有没有办法可以使用Joi验证这样的值,以便我可以验证它是一个具有零个或多个键(任何名称)的对象,并且每个都具有字符串,数字的值还是布尔值?

{
  dynamicallyNamedKey1: 'some value',
  dynamicallyNamedKey2: 4
}

1 个答案:

答案 0 :(得分:6)

您将要使用Joi object().pattern()方法。它专门用于验证具有未知密钥的对象。

要匹配单个密钥上的一个或多个数据类型,您需要alternatives().try()(或简单地传递Joi类型的数组)。

因此符合您需求的规则是:

Joi.object().pattern(/^/, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean()))