有没有办法使用 joi 验证两个数组需要具有相同的长度?
这是一个例子:
Joi.object().keys({
firstNames: Joi.array().items(Joi.string()).single(),
lastNames: Joi.array().items(Joi.string()).single(),
});
如果这是可行的,它也应该匹配两个数组的长度,所以没有
firstName
缺少lastName
。
感谢您的帮助!
.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()
的第三个参数。
array.length(limit)
的文档提到了这一点:
Joi.object().keys({
firstNames: Joi.array().items(Joi.string()).single(),
lastNames: Joi.array()
.items(Joi.string())
.single()
.length(Joi.ref('firstNames.length')),
});