[英]Joi array validation ignoring nested keys required
Joi array required validation not working. Joi 数组需要验证不起作用。 I have an array userData which contain objects, keys dateMilli and value.我有一个包含对象、键 dateMilli 和值的数组 userData。 I put required everywhere But if I pass an empty array of userData [].我把 required 无处不在但是如果我传递一个空的 userData [] 数组。 It is not throwing any error.它没有抛出任何错误。
Joi Version is "@hapi/joi": "^16.1.8" , struggling with Joi docs but nothing works. Joi 版本是"@hapi/joi": "^16.1.8" ,与 Joi 文档苦苦挣扎,但没有任何效果。
userId is "123" and userData is [] userId 是“123”,userData 是 []
const data = { userId, userData };
const schema = Joi.object({
userId: Joi.string().required(),
userData: Joi.array().items({
dateMilli: Joi.number().required(),
value: Joi.string().valid("YES", "NO").required()
}).required(),
});
let validate = schema.validate(data);
if (!validate || validate.hasOwnProperty("error")) {
return res.send("Invalid parameters");
}
You need to use .min
with array to disallow empty arrays.您需要将.min
与数组一起使用以禁止空数组。
try this尝试这个
const data = {"userId": "123", "userData": []};
const Joi = require("@hapi/joi");
const schema = Joi.object({
"userId": Joi.string().required(),
"userData": Joi.array().items({
"dateMilli": Joi.number().required(),
"value": Joi.string().valid("YES", "NO").required()
}).min(1).required()
});
const validate = schema.validate(data);
console.log(validate);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.