首页 > 解决方案 > Joi 使用未知键验证对象

问题描述

如何使用 Joi 验证具有未知键的对象?这是我的数据示例

{
'5520': {
    name: 'string',
    order: 0,
},
'8123': {
    name: 'string',
    order: 5,
},
'8219': {
    name: 'string',
    order: 1,
},
'10113': {
    name: 'string',
    order: 2,
},
'14538': {
    name: 'string',
    order: 6,
},
'15277': {
    name: 'string',
    order: 4,
},
'16723': {
    name: 'string',
    order: 3,
}

我想验证这些未知键中的每一个,以确保它们都包含名称、顺序和一些其他属性,它们都必须具有相同的属性。

我阅读了他们的文档,只是无法弄清楚如何处理那些未知的键。

标签: validationjoi

解决方案


您可以使用object.pattern

Joi.object().pattern(
    /\d/, 
    Joi.object().keys({
      name: Joi.string().valid('string'),
      order: Joi.number().integer(),
    })
)

这意味着您keys必须是数字,并且它们的值必须用andobject定义,这意味着您的任何示例数据都将通过。nameorder


推荐阅读