簡體   English   中英

僅驗證更大的 Joi 模式的一個字段

[英]Validate only one single field of a bigger Joi schema

我想使用Joi進行表單字段驗證,並希望堅持使用一個大模式對象來驗證整個表單,但我想在更改一個表單字段后運行單項驗證 - 即在第一個表單字段收到一個值,我不想驗證完整的表單,而只想更新一個字段。 我正在設想類似的東西

const schema = Joi.object({
    username: Joi.string()
        .alphanum()
        .min(3)
        .max(30)
        .required(),

    password: Joi.string()
        .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
        .required(),
});
const validationResult = schema.username.validate('Tommy');

那可能嗎?

是的,通過將用戶名模式提取到一個單獨的模式,如下所示:

const username_schema = Joi.string()
        .alphanum()
        .min(3)
        .max(30)
        .required();

const schema = Joi.object({
    username: username_schema,
    password: Joi.string()
        .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
        .required(),
});

const validationResult = username_schema.validate('Tommy');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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