npm 包 joi-extension-enums 使用教程

在日常的前端开发工作中,我们常常需要对用户输入的数据进行验证。这时候,我们常常会用到 Joi 这个 JavaScript 的库来对输入的数据进行校验。在实际项目中,我们往往需要对某些字段进行枚举值的检查,而 joi-extension-enums 这个 npm 包就是为了这个目的而生的。

joi-extension-enums 的安装和基本使用

首先我们先来安装 joi 和 joi-extension-enums 这两个 npm 包,可以通过 npm 或者 yarn 来进行安装。在项目根目录下,输入以下命令进行安装:

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

或者

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

接着,我们就可以在项目中使用这两个包了。

我们可以通过 Joi.extend() 方法来添加对枚举值的支持。比如我们要对一个名为 status 的字段进行枚举值校验,假设其枚举值为 SUCCESSFAILURE,可以按照以下方式进行:

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

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

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

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

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

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

在上面的代码示例中,我们用 Joi.string().enum(['SUCCESS', 'FAILURE']) 来指明了该字段的枚举值(即只能是 SUCCESS 或者 FAILURE)。如果数据里的值不是 SUCCESS 或者 FAILURE,那么在校验时就会提示错误信息。这样,我们就可以方便地对枚举值进行校验了。

joi-extension-enums 的高级应用

除了上面的基本用法,joi-extension-enums 还支持一些高级用法,比如将多个字段设置在一起进行枚举校验。以下是一个示例:

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

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

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

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

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

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

在上述示例中,我们定义了两个字段 typestatustype 字段的枚举值是 ABC,而 status 字段的枚举值则和 type 字段紧密关联。如果 typeA,那么 status 的允许值是 INITPENDINGSUCCESS 中的一个;否则,status 应该被禁止,即不出现在数据对象中。这样,我们可以方便地对复杂的数据进行校验。

总结

joi-extension-enums 是一个非常实用的 npm 包,能够方便地对枚举值进行校验。同时,它支持类似于 when 的高级用法,能够方便地对多个字段进行联合校验。如果你的项目需要对枚举值进行校验,那么不妨尝试一下 joi-extension-enums,它可以大大减轻你的开发压力,提高开发效率。

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


猜你喜欢

  • npm 包 toggl-invoice 使用教程

    随着互联网技术的快速发展,前端技术变得越来越重要。而随着前端技术的不断发展和进步,我们常常需要借助一些工具来提高我们的工作效率。本文介绍一个非常有用的 npm 包:toggl-invoice,它可以帮...

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

    介绍 node-unmsapi 是一个用于使用 UNMS API 的一个 Node.js 模块。UNMS是Ubiquiti Networks的一个通用网络管理系统,允许管理 Ubiquiti Netw...

    3 年前
  • npm 包 @borisp/materialui-pagination 使用教程

    介绍 在前端开发中,分页功能必不可少。 @borisp/materialui-pagination 是一个基于 MaterialUI 设计规范的分页组件,能够方便、美观的实现分页功能。

    3 年前
  • npm 包 @longjs/static 使用教程

    在前端开发中,使用静态资源是一个常见的需求。在过去,我们通常需要手动处理静态资源的压缩、合并、加版本号等问题。而在现今,使用 npm 包 @longjs/static 可以让我们轻松地完成这些任务。

    3 年前
  • npm 包 powerjinja-css 使用教程

    前言 在前端开发中,CSS 是必不可少的一部分。CSS 负责美化页面样式,使得页面具有更好的视觉效果和用户体验。然而,使用原始的 CSS 开发时,工作量很大,而且代码不易维护。

    3 年前
  • NPM 包 @loona/angular 使用教程

    前言 近年来,随着互联网的高速发展和web2.0时代的到来,越来越多的企业和机构开始将自己的业务线上化。同时,前端技术的繁荣也在加速推动了这股趋势。目前,前端技术的发展关乎到Web应用的性能、用户体验...

    3 年前
  • npm 包 @loona/core 使用教程

    介绍 @loona/core 是一个基于 GraphQL 的状态管理库,它提供了一种新的方式来管理应用程序的状态。它使用 GraphQL 查询语句作为状态的唯一来源,并使用 RxJS Observab...

    3 年前
  • npm 包 @loona/react 使用教程

    在前端开发中,使用第三方库和框架可以提高开发效率,其中 npm 是目前最流行的包管理工具之一。@loona/react 是一个专门为 React 框架开发的轻量化状态容器,它可以帮助我们轻松管理应用程...

    3 年前
  • npm 包 sleepy-sort 使用教程

    简介 在前端开发中,我们经常需要对数据进行排序,然而原生的排序方法需要手动实现,效率较低。因此,npm 上出现了许多非常方便的排序包。其中一款备受推崇的排序包就是 sleepy-sort。

    3 年前
  • npm 包 @kinkajou/linear-progress 使用教程

    在前端开发中,进度条是一种非常常见的界面元素。@kinkajou/linear-progress 是一个 npm 包,它为我们提供了在网页中创建线性进度条的功能。 安装 你可以通过 npm 或 yar...

    3 年前
  • npm包mockerito使用教程

    什么是mockerito? mockerito是一款前端开发中常用的模拟接口数据的npm包,通过模拟接口数据,我们可以在前端开发中避免由于后端接口未完成造成的开发停滞等问题。

    3 年前
  • npm 包 only-object 使用教程

    only-object 是一个专为 JavaScript 对象操作设计的 npm 包。它可以帮助开发者快速、方便地操作对象,只需通过一个函数就可以实现对象的选择、排除、合并等操作。

    3 年前
  • npm 包 powerjinja 使用教程

    在前端开发中,我们经常需要处理字符串模板,例如需要在字符串中插入变量,或者对字符串进行一些格式化操作。这时候,一个好用的模板引擎就显得尤为重要了。powerjinja 就是这样一个模板引擎,它基于 j...

    3 年前
  • npm 包 powerjinja-exponea-banner 使用教程

    在前端开发中,我们经常需要使用一些工具帮助我们更加高效地进行开发。其中,npm 包是最常见的工具之一。在这篇文章中,我们将深入介绍一个名为 powerjinja-exponea-banner 的 np...

    3 年前
  • `npm` 包 `@loona/schematics` 使用教程

    @loona/schematics 是一个 Angular 的项目脚手架,它可以大大提高 Angular 项目的开发效率和代码质量。本文将为大家介绍如何使用 @loona/schematics,包括安...

    3 年前
  • npm 包 @puge/three-orbit-controls 使用教程

    前端开发中,Three.js 是一款热门的 3D 渲染引擎,它能够轻松的帮助开发者构建复杂的三维场景。不过,如果要操作 Three.js 中的 3D 场景,往往需要借助一些控制器(Controls)来...

    3 年前
  • npm 包 @ronomon/base64 使用教程

    介绍 Base64 是一种用64个字符来表示二进制数据的编码方式,通常用于在HTTP协议等因特网应用中传输较小的二进制数据。npm 包 @ronomon/base64 封装了 Base64 编解码的相...

    3 年前
  • NPM包Angular-x-alerts使用教程

    简介 angular-x-alerts是一个基于Angular框架下的一个提示弹窗库,提供了多种类型的弹窗:警告、成功、失败、信息等。可通过简单的 API 调用来创建您所需要的任何弹窗,还可以自定义自...

    3 年前
  • npm 包 iobroker.network 使用教程

    iobroker.network 是一个基于 Node.js 的 npm 包,用于在 IoT 环境中创建和管理网络连接。本文将介绍如何安装和使用 iobroker.network,帮助前端工程师更好地...

    3 年前
  • npm 包 qiyun-el-modal 使用教程

    前言 在前端开发中,我们经常需要使用弹窗组件,而 qiyun-el-modal 就是一款很优秀的基于 Vue 的弹窗组件库。本篇文章将详细介绍 npm 包 qiyun-el-modal 的使用方法以及...

    3 年前

相关推荐

    暂无文章