zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    主要用到 DELPHI XE 10.2新增HASH函数
    个人使用Onenote和Evernote对比
    OneNote和Evernote的特征
    allure的HTML报告信息解疑
    记:ModuleNotFoundError: No module named 'pip'
    用例需注意的点
    Selenium Builder
    定位到元素后可进行的操作事件
    基本定位方法
    webdriver的基本操作
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/14351911.html
Copyright © 2011-2022 走看看