Joi 使用未知键验证对象

Joi validate object with unknown keys

如何使用 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,
}

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

我阅读了他们的文档,就是不知道如何处理那些未知的密钥。

您可以使用 object.pattern:

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

这意味着你的keys必须是数字,它们的值必须是用nameorder定义的object,这意味着,你的任何例子数据将通过。