【问题标题】:Validate only one single field of a bigger Joi schema仅验证更大 Joi 模式的一个字段
【发布时间】:2020-11-16 12:36:22
【问题描述】:

我想使用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');

这可能吗?

【问题讨论】:

    标签: javascript forms validation joi


    【解决方案1】:

    是的,通过将用户名架构提取到单独的架构,如下所示:

    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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 2020-09-06
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      相关资源
      最近更新 更多