有没有办法验证Joi架构中的动态密钥名称? [英] Is there a way to validate dynamic key names in a Joi schema?

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

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