有没有办法验证 Joi 模式中的动态键名? [英] Is there a way to validate dynamic key names in a Joi schema?
本文介绍了有没有办法验证 Joi 模式中的动态键名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有一种方法可以使用 Joi
验证这样的值,以便我可以验证它是一个具有零个或多个键(任何名称)的对象,并且每个键的值都为字符串、数字还是布尔值?
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?
{
dynamicallyNamedKey1: 'some value',
dynamicallyNamedKey2: 4
}
推荐答案
你会想要使用 Joi
的 object().pattern()
方法.它专门用于验证具有未知密钥的对象.
You're going to want to use Joi
's object().pattern()
method. It's specifically for validating objects with unknown keys.
要匹配单个键上的一个或多个数据类型,您需要 alternatives().try()
(或简单地传递 Joi
类型的数组).
To match against one or more datatypes on a single key you'll need alternatives().try()
(or simply pass an array of Joi
types).
因此,满足您需求的规则是:
So the rule to match your needs would be:
Joi.object().pattern(/^/, Joi.alternatives().try(Joi.string(), Joi.number(), Joi.boolean()))
这篇关于有没有办法验证 Joi 模式中的动态键名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文