有没有办法验证 Joi 模式中的动态键名? [英] Is there a way to validate dynamic key names in a Joi schema?

查看:48
本文介绍了有没有办法验证 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
}

推荐答案

你会想要使用 Joiobject().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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆