使用 joi 验证一个数组的长度与另一个数组的长度

Validating an array's length against another array's length using joi

有没有办法使用 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() 的第三个参数。