npm包joi-yml使用教程

前言

前端开发中,数据校验是一个必不可少的步骤。为了简化数据校验的流程,npm上有很多优秀的数据校验的工具,其中joi-yml是一个小而精悍的包。在本文中,我们将一步步学习如何使用joi-yml。

安装

使用npm安装joi-yml非常方便。在终端中输入以下命令即可:

--- ------- -------

安装完成后,你就可以在你的项目中使用joi-yml了。

基础使用

joi-yml的主要作用是用来校验数据的。joi-yml支持的数据类型非常丰富,包括数字、字符串、日期、邮箱、手机号等等。下面我们通过一个例子来了解一下如何使用joi-yml。

----- --- - -------------------

----- ------ - -------------------
  ----- ------------------------
  ---- ---------------------------------------
  ------ ---------------------
  ------ ---------------------------------------
---

----- ---- - -
  ----- ------
  ---- ---
  ------ --------------
  ------ -------------
-

----- ------ - ------------------ --------

-- -------------- -
  -----------------------------------------------
------
  ----------------------
-

在上面的代码中,我们首先定义了一个数据校验逻辑,在逻辑中,name字段为字符串类型,并且为必选字段;age字段为数字类型,必须为整数且必须大于等于0小于等于150;email字段为字符串类型,必须为邮箱格式;phone字段为字符串类型,必须为手机号格式。然后我们定义了一个数据对象,最后使用Joi.validate()函数进行数据校验。如果校验通过,则输出“数据校验通过”,如果校验不通过,则输出错误信息。

高级使用

除了上面的基础校验外,joi-yml还支持自定义校验规则、异步校验、多语言等高级功能。接下来我们将了解这些高级功能。

自定义校验规则

有时候我们需要校验的数据并不是简单的数据类型,而是一些复杂的数据类型。此时,我们可以通过自定义校验规则来实现校验。

----- --- - -------------------

----- ------ - -------------------
  ----- ------------------------
  ----- ------------------
    ------------
      ---- ---------------------------------------
      ------ ---------------------
      ------ ---------------------------------------
      ----------- -------------------------
    ------------ -------- -------- -------------
  --
---

----- ---- - -
  ----- ------
  ----- -
    -
      ---- ---
      ------ --------------
    --
    -
      ------ --------------  
      ----------- -------------------
    --
    -
      ---- ---
      ------ ---------------  
    --
  -
-

----- ------ - ------------------ --------

-- -------------- -
  -----------------------------------------------
------
  ----------------------
-

在上面的代码中,我们定义了一个更复杂的数据校验逻辑,逻辑中data字段为一个数组类型,数组中的每个元素为一个对象类型,对象中有四个字段,分别是age、email、phone和creditCard。其中age、email、phone和creditCard当中至少一个必须填写。如果只填写一个,则可以填写其中任意一个;如果填写多个,则只需要其中的一个符合要求即可。

异步校验

有时候我们需要校验的数据可能是异步返回的,此时我们可以使用异步校验的方式。

----- --- - -------------------

----- ------ - -------------------
  ----- ------------------------
  ------ --------------------------------------------------- ------- -------- -- -
    ----- ------ - ----- ------------------
    -- -------- -
      ------ ------
    - ---- -
      ------ ----------------------------
    -
  ---
---

----- -------- ----------------- -
  ------ --- --------------- -- -
    ------------- -- -
      ------------- --- ---------------
    -- ------
  --
-

----- ---- - -
  ----- ------
  ------ -------------
-

----- ------ - ----- ---------------------------

--------------------

在上面的代码中,我们定义了一个异步的校验规则,其中phone字段需要先异步校验其格式是否正确。如果格式不正确,则返回错误信息。否则返回正确的电话号码。

多语言功能

Joi-yml支持通过设置错误提示信息语言来提供国际化的支持。

----- --- - -------------------

-------------------------- -
  ---- -
    --------- -------
  --
  ------- -
    -------- -------
  --
  ------- -
    ------ ----------
    ------ -
      ----- -------
      ------ ----------
    -
  -
---

---------------------------

----- ------ - -------------------
  ----- ------------------------
  ---- ---------------------------------------
  ------ ---------------------
  ------ ---------------------------------------------------------------------- ---------------------
---

----- ---- - -
  ----- ------
  ---- -----
  ------ --------------
  ------ ----------------
-

----- ------ - ------------------ --------

-- -------------- -
  -----------------------------------------------
------
  ----------------------
-

在上面的代码中,我们定义了一个包含中文错误提示信息的校验规则,同时我们也修改了当前的语言设置,设置为中文。在校验规则代码中,我们使用Joi.addLocaleData()方法添加错误提示信息语言。在校验代码中,我们使用Joi.setLocaleData()方法设置当前使用的语言。在数据对象中,我们故意将age字段设置为字符串类型用于产生一个错误。此时Joi将会使用我们定义的中文错误提示信息“必须为整数”来提示错误。

结语

本文介绍了npm包joi-yml的基础使用和高级使用。通过本文,相信大家已经可以熟练的使用joi-yml对数据进行校验了。在使用过程中,可以灵活运用joi-yml的高级功能,满足不同的校验需求,提高开发效率。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668efd9381d61a3540d42


猜你喜欢

  • npm 包 string-to-buffer 使用教程

    前言 在前端开发中,我们常常需要对数据进行加密或者解密操作,对于一些加密或者解密算法,大多数情况下是需要进行二进制数据的操作的,而 JavaScript 中的字符串类型并不支持这些操作。

    3 年前
  • npm 包 @geekcash/mix-lib 使用教程

    前言 随着前端技术的不断进步,工具的多样性以及开发流程的不断变化,前端库和框架也不断涌现。其中,npm 包作为前端社区最为活跃的一种开源形式,被广泛应用于前端开发。

    3 年前
  • npm 包 create-dear-app 使用教程

    简介 create-dear-app 是一个基于 React 的快速创建前端工程化项目的 npm 包,它可以帮助开发者快速搭建 React 项目框架,同时支持常用的 React 配置、webpack、...

    3 年前
  • 前端技术学习 | npm 包 graphql-artisan 使用教程

    GraphQL 是一种用于 API 的查询语言,它有着高效、强大、灵活、易于理解和使用等优点。GraphQL 在前端技术领域也变得越来越流行,为前端开发人员提供了更多的选择。

    3 年前
  • npm 包 azure-arm-machinelearning 使用教程

    Azure Machine Learning 是微软提供的云平台,用于让开发人员和数据科学家轻松地构建、部署和管理机器学习模型。它提供了许多强大的功能,包括自动化机器学习、可视化构建和部署、实时预测和...

    3 年前
  • npm 包 mcmc 使用教程

    在前端领域,开发者需要处理许多数据分析问题。MCMC(Markov Chain Monte Carlo)是一种统计方法,可以帮助开发者处理这些问题。npm 包 mcmc 是一个基于 JavaScrip...

    3 年前
  • npm 包 circuit-b 使用教程

    简介 Circuit-B 是一个基于 HTML5 的可编辑图形和电路编辑器。这个 npm 包为前端开发者提供了一种快捷、简单的方式来绘制电路、布线和布局。它包含了一个可以直接调用的 API,以及适用于...

    3 年前
  • npm 包 persistent-limestone 使用教程

    介绍 在前端开发中,我们经常会需要在浏览器中本地存储一些数据,以便下次访问时能够快速地获取这些数据。但是,浏览器提供的本地存储方式(如 localStorage 和 sessionStorage)存在...

    3 年前
  • npm 包 bin-version-cli 使用教程

    介绍 npm 是一款 JavaScript 包的包管理器,是 Node.js 的核心模块之一。随着 JavaScript 的广泛应用,npm 包也越来越丰富,在开发中经常会用到某些包来提高效率,其中 ...

    3 年前
  • npm 包 antd-mobile-upload 使用教程

    前言 随着时代的发展和技术的进步,前端开发在应用场景和复杂度方面都得到了不断的发展和提升。除了自主开发和应用外,引入优秀的第三方组件和框架也是加快开发速度和提高效率的一种好的方式。

    3 年前
  • npm包invoked-once使用教程

    什么是npm包invoked-once? invoked-once是一个简单的npm包,旨在确保一个函数只被调用一次。当多次调用同一函数时,它可以确保只有第一次调用有效。

    3 年前
  • npm 包 @test-ui/core 使用教程

    前言 在现代化的前端开发中,组件化和模块化是不可避免的趋势。@test-ui/core 是一个基于 React 框架的 UI 组件库,提供了一些常用的 UI 组件以及可定制的主题。

    3 年前
  • npm 包 cloud-build-discord-notifier 使用教程

    cloud-build-discord-notifier 是一个 Node.js 模块,用于将 Cloud Build 的通知消息发送到 Discord 频道。本文将详细介绍该模块的使用方法。

    3 年前
  • npm 包 react-flags-select-mini 使用教程

    在前端开发中,经常需要使用到国旗选型的功能,比如显示语言、显示国家等。react-flags-select-mini 是一个 npm 包,提供了一个简单易用的组件,可以方便的添加国旗选项。

    3 年前
  • npm 包 @mware/updeep 使用教程

    在现代前端开发中,我们经常需要在不修改原始数据的情况下对其进行更新或变换。这也是函数式编程思想在前端领域应用的一种体现。@mware/updeep 就是一个非常好用的函数式工具库,它提供了很多便捷的 ...

    3 年前
  • npm 包 ember-cli-date-textbox 使用教程

    在前端开发中,我们经常需要处理日期时间相关的问题,比如输入日期、显示日期、格式化日期等等。而 ember-cli-date-textbox 就是一个提供了日期文本框的 Ember.js 插件,它可以简...

    3 年前
  • npm 包 node-pickle 使用教程

    简介 node-pickle 是一个用于解析 Python Pickle 格式的 Node.js 模块。它能够将 Python 对象序列化为 pickle 格式的文本,并且可以将 pickle 格式的...

    3 年前
  • npm 包 react-input-hook 使用教程

    在前端开发中,我们经常需要处理表单输入,而 React 的单向数据流让表单处理变得有些繁琐。而 react-input-hook 这个 npm 包可以使表单的处理变得更加便捷和高效。

    3 年前
  • npm 包 react-multi-picker 使用教程

    前言 随着前端技术的不断发展,越来越多的优秀的第三方库和框架出现,为我们前端开发者提供了很多方便和便利。其中,npm 包是应用最广泛的一种,可以通过 npm 包快速安装和使用各种开源工具和库。

    3 年前
  • npm 包 tinygesture 使用教程

    前言 在开发前端交互时,手势操作是不可缺少的一部分。手势操作可以让用户以更自然、快捷的方式使用应用程序。但是,手势操作的实现常常需要繁琐的代码。为了解决这个问题,一些前端工程师开发了一些手势操作的库,...

    3 年前

相关推荐

    暂无文章