Joi - 已知和未知密钥的混合

Joi - Mix of known and unknown keys

我正在尝试创建一个 joi 模式,其中我有一堆已知和未知的键。

{
  dogname: 'doggo', 
  catname: 'attack',
  dogage: 51,
  catage: 98,
  key51: '',
  key73: '',
  key47: ''
}

基本上前 4 个密钥始终存在,但最后一个密钥是带有某个随机数 0-100 后缀的密钥。我知道你可以做一个正则表达式模式,但我想要前 4 个键的完整唯一验证。

我假设每个字段都进行了实际验证,但这将验证属于 key[0-100]: 'string' 模式的定义字段和变量字段。

要带走的关键方面是 .pattern() 的用法。

Joi.object().keys({
    dogname: Joi.string(),
    catname: Joi.string(),
    dogage: Joi.number().integer().positive(),
    catage: Joi.number().integer().positive()
}).pattern(/^key[0]|[1-9][0-9]?|100/, Joi.string());