Joi验证和模式

时间:2017-12-21 16:14:37

标签: node.js validation joi

您好我正在尝试进行复合Joi验证,但我失败了。

我想验证的是以下对象:

    {
      content: {
        dynamicKeyName: {
          title: '1',
          link: 'ggdf',
          order: 1,
        },
        dynamicKeyName2: {
          title: 'tttt',
          link: 'bbbb',
          order: 2,
        },
        .
        .
        .
      }
    }

我正在尝试创建一个验证规则,该规则将包含许多子对象,例如dynamicKeyName对象,而不知道确切的键名,但是具有类似的值对象。

我写了以下Joi规则:

const subSchema = Joi.object().required().keys({
  title: Joi.string().required(),
  link: Joi.string().required(),
  order: Joi.number().integer().required(),
});

const schema = Joi.object().keys({
  content: Joi.object().pattern(/^[\w\d]+$/, subSchema),
  .
  .
  .
});

然而,当我运行验证时,我得到一个错误:"其他属性dynamicKeyName不应该有其他属性"

1 个答案:

答案 0 :(得分:0)

所以我尝试了上面发布的架构和示例,它运行正常。

可能是造成问题的其他一些关键因素。

enter image description here

尝试粘贴您尝试测试的整个架构和数据。