[英]Joi array validation ignoring nested keys required
Joi 數組需要驗證不起作用。 我有一個包含對象、鍵 dateMilli 和值的數組 userData。 我把 required 無處不在但是如果我傳遞一個空的 userData [] 數組。 它沒有拋出任何錯誤。
Joi 版本是"@hapi/joi": "^16.1.8" ,與 Joi 文檔苦苦掙扎,但沒有任何效果。
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");
}
您需要將.min
與數組一起使用以禁止空數組。
嘗試這個
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.