Joi 强大的 JS 数据验证库

开源网站开源项目 24-03-24 14:23:55

Joi 是用于 JavaScript 的强大的模式描述语言和数据验证器,让你可以使用简单、直观且可读的语言来描述数据。

示例:

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 强大的 JS 数据验证库]相关推荐

Link PHP 应用路由库

Link 是一个微型的 PHP 应用路由库,为你的 PHP 项目和 API 实现快速路由功能。 特性 RESTfulrouting Wil……...

脆皮 Trimps(汉化版)

脆皮 Trimps(汉化版)

脆皮是一款很好玩的挂机类文字游戏。在这个世界我们要捕捉驯养一种名为 trimp(咱们称之为:脆皮)的生物……...

SMACK 软件验证工具链

SMACK即是一个模块化的软件验证工具链,又是一个独立的软件验证工具。它可以被用于验证输入程序里的断言……...

OLPC 儿童笔记本电脑

OLPC 儿童笔记本电脑

每个孩子一台笔记本电脑(One Laptop Per Child,OLPC),由麻省理工学院多媒体实验室发起并组织为一个非……...

Pyre Python 类型检查工具

Pyre Python 类型检查工具

Pyre 是一个快速、可扩展和高性能的 Python 类型检查工具,适用于大型的Python 3 代码库,旨在通过在终端……...

今日开源
  1. ionicons 开源图标集合

    ionicons 开源图标集合

    Ionicons是一个完全开源的图标集,包含 1,300 个专为 Web、iOS、Android 和桌面应用程序设计的图标。 Ionicons 是为Ionic Framework构建的,因此图标具有 Material Design 和 iOS 版本,支持 SVG 和 Web Font。 Io……

    开源软件 2024-05-12

  2. reason 基于 OCaml 的语法和工具链

    reason 基于 OCaml 的语法和工具链

    Reason 使你可以在利用 JavaScript 和 OCaml 生态系统的同时编写简单,快速和高质量的类型安全代码。 具有以下特点: 可以快速掌握 强大的自动源代码格式化 采用 JavaScript / C 互操作增量 没有语言级 VM 快……

    开源软件 2024-05-12

  3. anychat 极简 websocket 聊天插件

    anychat 极简 websocket 聊天插件

    anychat 是一个极简纯净的 websocket 聊天插件,支持对接任何身份系统,嵌入方只需提供三个 API 即可进行实时通讯。支持个人聊天、群聊天、上下线、查看聊天记录、离线消息推送等,服务器绝对控制权的推送机制,合……

    开源软件 2024-05-12

返回顶部小火箭