如果Joi在该数组的另一个对象中设置,则在Joi中创建一个项目

时间:2018-04-09 08:55:11

标签: node.js validation joi

我有一组具有相同结构的对象。是否可以,如果将一个对象中的项目设置为在所有其他对象中都需要它?

const arr = [
  {
    item1: 1,
    item2: 2
  },
  {
    item1: 3
  }
]

在这个例子中,这将是一个错误,因为在第二个对象中,item2虽然存在于第一个对象中,但并未设置。

1 个答案:

答案 0 :(得分:0)

是,您可以指定数组内对象的架构。示例代码

const Joi = require('joi');

const objectSchema = Joi.object({
  item1: Joi.number().required(),
  item2: Joi.number().required()
})

const arraySchema = Joi.array().items(objectSchema);

const invalidInput = [{
  item1: 1,
  item2: 2
}, {
  item1: 1,
}];


const result = Joi.validate(invalidInput, arraySchema);
console.log(result);

输出将显示错误

{ ValidationError: "value" at position 1 fails because [child "item2" fails because ["item2" is required]]