使用JOI如何定义深度为n的对象验证的递归数组

时间:2018-07-23 11:20:59

标签: joi

let obj = Joi.object().keys({
      "id":  Joi.string().required(),
      "array": Joi.array().items(obj).required()//array contains multiple
});

有什么方法可以在JOI中定义递归数组验证obj.array包含n个obj

1 个答案:

答案 0 :(得分:1)

可以使用Joi的lazy(fn)函数来实现递归模式。文档中的以下示例可以适应您的模式,但是我不确定如何定义最大深度。

const Person = Joi.object({
    firstName: Joi.string().required(),
    lastName: Joi.string().required(),
    children: Joi.array().items(Joi.lazy(() => Person).description('Person schema'))
});