Joi:javaScript对象的规则描述语言和验证器

1.npm install joi@14.3.1

2.建立joi.js文件

3.导入第三方包joi

const Joi = require('joi');

4.自定义验证规则

const schema = {

  username:Joi.string().min(2).max(10).required().error(new Error('用户名不符合验证规则')

}

5.使用验证规则验证数据是否符合,使用joi的一个方法validate,返回的是promise对象

Joi.validate({username:'zhangsan'},schema);

6.因为上面的方法是返回promise,所以可以用异步函数来处理

async function run() {

  try{

     await Joi.validate({username:'zhangsan'},schema);

  }catch(ex) {

    console.log(ex.message);

    return;

  }

  console.log(验证通过');

run();

7.如果在验证规则时,出现Joi.validate is not a function的问题,则有可能是版本问题,只需卸载当前的joi版本,重新npm install joi@14.3.1版本即可

//引入Joi模块
const Joi = require('joi');
//定义对象的验证规则
const schema = {
    username: Joi.string().min(2).max(10).required().error(new Error('用户名不符合验证规则'))
}
async function run() {
    try {
        //使用规则验证对象 返回的是promise对象 所以可以用异步函数进行处理
        await Joi.validate({ username: '张三' }, schema);
    } catch (ex) {
        console.log(ex.message);
        return;
    }
    console.log('验证通过');
}
run();

第三方库文件Joi对数据进行验证的方法以及解决Joi.validate is not a function的问题的更多相关文章

  1. Python安装第三方库文件工具——pip

    Python安装第三方库文件一般使用pip. 1.pip的安装 (1)下载pip 进入https://pypi.python.org/pypi/pip#downloads

  2. Android Studio使用Gradle引入第三方库文件

    原文链接:https://blog.csdn.net/qiutiandepaomo/article/details/81538937 使用AndroidStudio开发Android应用的时候,会经常 ...

  3. python重要第三方库pandas加载数据(详解)

    Pandas数据加载 关注公众号"轻松学编程"了解更多. pandas提供了一些用于将表格型数据读取为DataFrame对象的函数,其中read_csv和read_table这两个 ...

  4. Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)

    一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...

  5. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  6. iOS程序开发引用的第三方库之间出现duplicate symbol时的处理方法

    iOS程序集成的第三方库过多时,很容易出现某几个库同时用到了一样的函数库,也就是在你的程序link时会提示duplicate symbol,而重复的符号又不是由你自己程序的代码造成的,也就说没法通过直 ...

  7. 对于pod导入第三方库文件终端语言记录

    //换成 pod install --verbose --no-repo-update //生成Podfile文件 touch Podfile 加上--verbose --no-repo-update ...

  8. nexus配置第三方库文件

    进入nexus管理界面 默认用户名密码:admin/admin123 在左侧Views/Repositories中选择Repositories,然后在右侧的面板中选择3rd party,在下方arti ...

  9. 通过InputStream访问文件中的数据的四种方法

    //方法一(每次只读取一个字节) public static void getFile() throws IOException { File file = new File("D:\\a. ...

随机推荐

  1. rs232转网络

    rs232转网络 rs232转网络ZLAN5103可以实现RS232/485/422和TCP/IP之间进行透明数据转发.方便地使得串口设备连接到以太网和Internet,实现串口设备的网络化升级.支持 ...

  2. centos8上配置openssh的安全

    一,openssh服务版本号的查看 1,查看当前sshd的版本号 : [root@yjweb ~]# sshd --help unknown option -- - OpenSSH_7.8p1, Op ...

  3. centos8上添加sudoer用户

    一,检查服务器是否已安装sudo的rpm包? 1,查询rpm包列表 [root@yjweb ~]# rpm -qa | grep sudo libsss_sudo-2.0.0-43.el8_0.3.x ...

  4. 第二十二章 Nginx性能优化

    一.性能优化概述 1.我们需要了解 1.首先需要了解我们当前系统的结构和瓶颈,了解当前使用的是什么,运行的是什么业务,都有哪些服务,了解每个服务最大能支撑多少并发.比如nginx作为静态资源服务并发是 ...

  5. 【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决

    问题情形 当访问部署在Azure App Service中的应用返回 "The remote name could not be resolved: ''xxxxxx.com'" ...

  6. js实现无缝连接轮播图(七)实现左侧按钮的功能

    <!-- 这个animate.js 必须写到 index.js的上面引入 --><script src="js/animate.js"></scrip ...

  7. Linux下使用select延时

    在LINUX用户态的情况下,如果想要延时的话,可以使用用sleep函数,但是在一些情况下,需要更小单位的延时,ms/us 也是要的.用循环获取到的延时是不精确的. sleep是不准确,这个函数是可以中 ...

  8. stm32与红外遥控器(NEC协议)

    1.器件简介 本次测试采用R903V1红外接收头与NEC协议的红外遥控器,接收头原理图如下: 器件的供电电压VCC在2.7V~5.5V之间,输出电压VOUT正常在0.2v ~(VCC-0.3±0.2) ...

  9. 常见ascii码记忆

    常见字符的ASCII码值如下:空格的ASCII码值为32:数字0到9的ASCII码值分别为48到57:大写字母"A"到"Z"的ASCII码值分别为65到90:小 ...

  10. D. Alyona and Strings 解析(思維、DP)

    Codeforce 682 D. Alyona and Strings 解析(思維.DP) 今天我們來看看CF682D 題目連結 題目 略,請直接看原題. 前言 a @copyright petjel ...