是否可以使用joi验证两个数组的长度是否相同?
这是一个例子:
Joi.object().keys({
firstNames: Joi.array().items(Joi.string()).single(),
lastNames: Joi.array().items(Joi.string()).single(),
});
如果这行得通,它还应该匹配两个数组的长度,因此没有firstName
缺少lastName
。
感谢您的帮助!
答案 0 :(得分:2)
当然有,请看.assert()
。您可以使用它来比较对象中两个属性的值或属性。
对于您的示例,您可以执行以下操作:
Joi.object().keys({
firstNames: Joi.array().items(Joi.string()).single(),
lastNames: Joi.array().items(Joi.string()).single(),
}).assert('firstNames.length', Joi.ref('lastNames.length'));
您还可以选择提供更有用的错误消息作为.assert()
的第三个参数。