npm 包 joi-extension-enums 使用教程

阅读时长 4 分钟读完

在日常的前端开发工作中,我们常常需要对用户输入的数据进行验证。这时候,我们常常会用到 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

纠错
反馈