Joi

强大的 JS 数据验证库
授权协议 未知
开发语言 JavaScript TypeScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 廖君昊
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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) { }
  • 记录一下自己在写node.js表单验证这块的做法 可以用 validator,也可以用Joi,这两个的下载量都很大, 个人是采用Joi,这里附上它的文档地址 Joi示例文档 首先创建表单的验证规则,暂时只设置了关于账号和密码的 const Joi = require("joi") // 定义表单验证规则 const schema = Joi.object({ name: Joi.strin

  • 官方文档 一、简介 joi 是用于 JavaScript 的强大的模式描述语言和数据验证器,让你可以使用简单、直观且可读的语言来描述数据。 二、安装 npm i joi 三、示例 // 定义对象的验证规则 const schema = joi.object({ username: joi.string().min(2).max(12).required().error(new Error("用

  • 在编写api的时候通常都需要对参数进行校验,包括: 参数的类型、必填等; 字符串,是否可以为空、该符合什么规则等; 数字,最大值最小值是什么等等等等。 Joi 是 hapijs 自带的数据校验模块,它已经高度封装常用的校验功能。 1.安装及使用: //安装 npm install joi --save //引用 import Joi from 'joi' 2.基础使用 使用joi进行校验,首先

  • 在编写api的时候通常都需要对参数进行校验,包括: 参数的类型、必填等; 字符串,是否可以为空、该符合什么规则等; 数字,最大值最小值是什么等等等等。 Joi 是 hapijs 自带的数据校验模块,他已经高度封装常用的校验功能。 安装及使用: npm install joi --save import Joi from 'joi' 基础使用 使用joi进行校验,首先要定义它的校验规则,也叫sch

  • 星际蛋糕推销 先算出每一段蛋糕的长度,每次询问在原序列上二分查找或双指针即可。 时间复杂度 O ( N + Q ) O(N+Q) O(N+Q),空间复杂度 O ( N ) O(N) O(N) #include<stdio.h> #include<algorithm> int a[200001]; long long sum[200001]; int main(){ int n,q,d; sca

  • joi 参数验证 介绍 (Introduction) Imagine you are working on an API endpoint to create a new user, and some user data such as firstname, lastname, age and birthdate will need to be included in the request. P

  • 零、背景 node.js 应用中,req.query / req.body 传来的参数需要做 valication( 合法性验证 ) 一、安装 https://github.com/hapijs/joi npm i joi --save const Joi = require('Joi'); 二、基本用法 Joi.validate(value, schema, [options]); 1、通过验证

  • 学习joi的过程中在导出e.message过程中发现了如下错误 Joi.validate%20is%20not%20a%20function 通过查找发现是新版本joi的语法问题 原代码 //引入joi模块 const Joi=require('joi') module.exports=async(req,res)=>{ //定义对象的验证规则 const schema={

  • 一、作用 定义验证规则 二、下载 npm i @hapi/joi 三、导入 const joi = require("@hapi/joi") 四、定义带有验证规则的对象 // 定义对象的验证规则 const schema = { /* 属性1:验证规则1, 属性2:验证规则2, ...... */ }; //示例: const schema = { // 该

  • node.js中joi模块的基本使用 //引入joi模块 const Joi = require('joi'); //定义对象的验证规则 const schema = { username: Joi.string().min(2).max(5).required().error(new Error('username属性没有通过验证')), birth: Joi.number

  • 低代码中表单的各种组件已经提交了基础的校验规则,但在实际的开发中光有客户端校验是不够的。尤其在屏蔽了js之后可能客户端校验就不起作用了。 为了安全起见,我们需要在服务端也进行校验。那服务端校验如何做呢? 可以在服务端的云函数里引入一个工具,joi。这款工具可以自定义校验规则,很好的完成各种规则的校验。 引入工具 可以在云函数中通过require语法进行引入 const Joi = require(

  • 一开始遇到这个报错的时候,我也是一脸懵逼,报错信息的翻译是:不能混合不同版本的joi架构。我还特地去搞了一下两个包的版本,后来发现“然并卵”,哈哈哈。后边通过各方面查资料才找到了这个解决方案,原来这么简单,嘻嘻。于是我就迫不及待的想要和大家分享了。 解决办法:         其实很简单,只需要进行如下操作: 将 require(@hapi/joi) 替换成 require('joi') 即可完美

  • 今天在使用joi进行前端数据校验时遇到了个问题,弄了一段时间,在网上搜索不到答案只能自己去折腾了。 先是检查了下代码 确定没有问题。 后来想是不是我的node版本(12.8.1)或者npm版本(6.14.6)和joi插件有问题 解决方法先删除了最新版的joi组件好像是17.几版本,把joi插件回滚到旧的版本如14.3.1验证就通过了。 具体操作 //卸载当前目录下的joi组件 node unins

 相关资料
  • 本文向大家介绍js验证密码强度解析,包括了js验证密码强度解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章我们来说一个验证密码强度的例子,大家在进入一个网站的时候,往往都会先注册一个账号,然后输入密码,在输密码的时候,系统会根据我们输入的密码组成的复杂程度来给你的密码显示一个密码强度,一般就是强中弱三种,我们先来说一下密码验证的原理,原理明白了,js代码就好写了,今天的代码会用到正则表达式。

  • 本文向大家介绍js如何验证密码强度,包括了js如何验证密码强度的使用技巧和注意事项,需要的朋友参考一下 验证“密码强度”的例子很常见,我们注册新的账号的时候往往设置密码,此时就遇到验证密码强度的问题了。“密码强度”也就是密码难易程度的意思。 原理: 1、如果输入的密码为单纯的数字或者字母:提示“低” 2、如果是数字和字母混合的:提示“中”  3、如果数字、字母、特殊字符都有:提示“强” 下面是一种

  • 编写验证器 验证器是一个可调用的对象,它接受一个值,并在不符合一些规则时抛出ValidationError异常。验证器有助于在不同类型的字段之间重复使用验证逻辑。 例如,这个验证器只允许偶数: from django.core.exceptions import ValidationError def validate_even(value): if value % 2 != 0:

  • 简介 Lumen 提供了数种不同的方法来验证传入应用程序的数据。默认情况下,Lumen 的基控制器类使用名为 ProvidesConvenienceMethods 的 trait,其提供了一种便捷的方法来使用各种强大的验证规则验证传入的 HTTP 请求。 一般来说,Lumen 中的数据验证与 Laravel 中的数据验证并无多大区别,因此你应该查阅 完整的 Laravel 数据验证文档 以熟悉其使

  • ThinkCMF5的数据库验证按 TP5的验证来处理,不同的是自定义验证器增加了 Validate后缀,所以你在查看 TP5手册时请留意这一点! TP5手册-验证

  • 主要内容:验证数据库是否具有限制性,配置数据库管理器和数据库,数据库配置参数运行 命令后,可以使用以下命令检查是否已创建数据库: 验证数据库是否具有限制性 通过使用上述命令,只能检查数据库列表。无法确定数据库是限制性的还是非限制性的。 使用以下命令检查数据库是否具有限制性。 语法: 示例: 假设要检查 数据库是否是限制性数据库: 得到类似以下结果: 可以看到它不是限制性的。现在检查是否是限制性数据库: 得到类似以下结果: 可以看到 是限制性数据库。 配置数据库管理器和数据

  • Jboot 从 V3.7.5 开始,增强 Jboot 的验证方式,在 Jboot 之前的 @EmptyValidate、@RegexValidate 等基础上,进一步基于 JSR 303 – Bean Validation 简化了验证方式,相比 Spring 更加优雅简单。 @NotNull 在 Controller (或 Service 等)中,我们可以直接通过 @NotNull 注解给 Con

  • 数据验证 phpGrace 内置了数据验证工具类,可以方便、全面的验证数据! 使用步骤 //1、定义验证规则 $checkRules = array( 'name' => array('验证类型', '验证规则匹配的数据', '错误信息'), ...... ); //2、实例化数据验证工具(参数:1、被验证的数据 2、验证规则 3、是否自动验证 Token 【可选参数 默认 fa