简体   繁体   English

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

[英]Is there a way to validate dynamic key names in a Joi schema?

Is there a way I can validate a value like this with Joi so that I can verify it is an object with zero or more keys (of any name) and that each have values of either a string, number or boolean? 有没有办法可以用Joi验证这样的值,这样我就可以验证它是一个零或多个键(任何名称)的对象,并且每个都有字符串,数字或布尔值?

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

You're going to want to use Joi 's object().pattern() method. 你将要使用Joiobject().pattern()方法。 It's specifically for validating objects with unknown keys. 它专门用于验证具有未知密钥的对象。

To match against one or more datatypes on a single key you'll need alternatives().try() (or simply pass an array of Joi types). 要匹配单个键上的一个或多个数据类型,您需要alternatives().try() (或简单地传递Joi类型的数组)。

So the rule to match your needs would be: 因此符合您需求的规则是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM