如何使用 Joi 验证映射对象(映射键和映射值)

ale*_*pov 3 javascript joi

例如有下面这张地图:

keys = type string, 5 characters long
values = type number
Run Code Online (Sandbox Code Playgroud)

例子:

test = {
   "abcde": 1
   "12345": 2
   "ddddd": 3
}
Run Code Online (Sandbox Code Playgroud)

如何编写 Joi 方案来验证键是 5 个字符的字符串类型,值是数字类型

Ank*_*nkh 9

看起来您正在尝试使用未知键验证对象,但您知道该对象必须匹配的一般模式。您可以使用 Joi 的.pattern()方法来实现这一点:

object.pattern(pattern, schema)

指定与模式匹配的未知键的验证规则,其中:

pattern- 可以是正则表达式或 joi 模式的模式,将针对未知键名称进行测试。

schema- 模式对象匹配键必须进行验证。

所以对于你的例子:

Joi.object().pattern(Joi.string().length(5), Joi.number());
Run Code Online (Sandbox Code Playgroud)