如何解决我在使用 Joi 验证器验证数组时遇到问题
let schema=Joi.array().length(2).items(Joi.number().integer().max(23).min(0).required(),Joi.number().integer().max(59).min(0).required())
if (schema.validate(value).error) {
return {
error: text
}
}
嗨,我对 joi 有一个大问题 我想验证一个长度为 2 的数组,第一个索引是小时,最大值是 23,最小值是 0。第二个索引是分钟,最大值是 59,最小值是 0。
第二条规则运行良好,但是当我输入 24 小时或更多 joi 时,不会返回错误,我无法理解那是什么!!! 对于 arry 的第二个索引,我没有问题,并且大于 59 且小于 0 效果很好 它仅用于第一个索引 我用字符串和 joi 测试第一个索引返回错误,但是当我使用数字 60 或更多时,我没有错误! 注意:sary 英语不好
解决方法
你定义架构的方式,元素的顺序是无关紧要的,这意味着这个例子会通过:
[24,1]
如果要按顺序定义数组元素,则必须将 .items
替换为 .ordered:
Joi.array().length(2).ordered(
Joi.number().integer().max(23).min(0).required(),Joi.number().integer().max(59).min(0).required()
)
这样,第一个元素被强制为 0-23 之间的值,第二个元素为 0-59 之间的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。