如何使用 Joi 验证地图对象(地图键和地图值)

How to use Joi to validate map object (map keys and map values)

例如有如下地图:

keys = type string, 5 characters long
values = type number

示例:

test = {
   "abcde": 1
   "12345": 2
   "ddddd": 3
}

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

您似乎在尝试验证具有未知键的对象,但您知道该对象必须匹配的一般模式。您可以使用 Joi 的 .pattern() 方法实现此目的:

object.pattern(pattern, schema)

Specify validation rules for unknown keys matching a pattern where:

pattern - a pattern that can be either a regular expression or a joi schema that will be tested against the unknown key names.

schema - the schema object matching keys must validate against.

所以对于你的例子:

Joi.object().pattern(Joi.string().length(5), Joi.number());