如何使用JOI验证来验证嵌套json对象的某些字段

时间:2018-11-28 06:38:54

标签: javascript node.js validation joi

我需要有关如何使用JOI验证来验证嵌套json对象的某些字段的帮助。在我的示例中,我有一个包含两个子对象的对象,即zclientObj。我只想验证必填的agentObj字段,但不想验证其余字段。如果仅提及该字段,则通过删除我的架构和username函数中的所有其他字段,我将收到422错误。代码如下:

joi.validate()

1 个答案:

答案 0 :(得分:2)

您可以使用{ allowUnknown: true }

允许未知密钥

const data = {
  clientObj: {
    username: 'username',
    otherProp: 'otherProp'
  },
  agentObj: {
    otherProp2: 'otherProp2'
  }
};

const schema = Joi.object().keys({
  clientObj: Joi.object().keys({
    username: Joi.string().required()
  })
});

Joi.validate(data, schema, { allowUnknown: true }, (err) => {
  console.log(`err with allowUnknown: ${err}`);
});

Joi.validate(data, schema, { allowUnknown: false }, (err) => {
  console.log(`err without allowUnknown: ${err}`);
});
<script src="https://cdn.jsdelivr.net/npm/joi-browser@13.4.0/dist/joi-browser.min.js"></script>

doc

相关问题