• sideway/joi js 强大的data schma 校验框架


    数据校验处理在实际中是一个很重要的东西,类似的框架也比较多,同时也包含了
    好多规范指南(json schema,xml schema。。。。),joi 是一个比较强大的js 对于
    校验框架,使用简单,支持特新丰富

    参考使用

     
    const Joi = require('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}$')),
        repeat_password: Joi.ref('password'),
        access_token: [
            Joi.string(),
            Joi.number()
        ],
        birth_year: Joi.number()
            .integer()
            .min(1900)
            .max(2013),
        email: Joi.string()
            .email({ minDomainSegments: 2, tlds: { allow: ['com', 'net'] } })
    })
        .with('username', 'birth_year')
        .xor('password', 'access_token')
        .with('password', 'repeat_password');
    schema.validate({ username: 'abc', birth_year: 1994 });
    // -> { value: { username: 'abc', birth_year: 1994 } }
    schema.validate({});
    // -> { value: {}, error: '"username" is required' }
    // Also -
    try {
        const value = await schema.validateAsync({ username: 'abc', birth_year: 1994 });
    }
    catch (err) { } 

    说明

    joi 早期属于hapi 框架的,后边拆分出去了,是一个很不错的数据schema 处理框架

    参考资料

    https://github.com/sideway/joi#readme
    https://joi.dev/

  • 相关阅读:
    整理15款实用javascript富文本编辑器
    深度选择器
    字帖工具 免费打印 生成pdf
    说说市场经济
    看windows变化的感想
    观念总结
    Bittly 不只是一个串口调试助手
    [POI2013] SPAWalk 引理证明
    JAVA基础之泛型
    macaca,request,unitest,flask 框架介绍和理解
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14351911.html
Copyright © 2020-2023  润新知