使用joi对照另一个数组的长度来验证一个数组的长度

时间:2018-11-02 23:43:37

标签: javascript arrays joi

是否可以使用joi验证两个数组的长度是否相同?

这是一个例子:

Joi.object().keys({
  firstNames: Joi.array().items(Joi.string()).single(),
  lastNames: Joi.array().items(Joi.string()).single(),
});

如果这行得通,它还应该匹配两个数组的长度,因此没有firstName缺少lastName

感谢您的帮助!

1 个答案:

答案 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()的第三个参数。