簡體   English   中英

Joi 數組驗證忽略所需的嵌套鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM