npm 包 joi-error-formatter 使用教程

阅读时长 6 分钟读完

前言

在 Web 开发中,表单验证是必不可少的一环。Joi 是一款 Node.js 中非常流行的表单验证库,它提供了丰富的验证规则和错误提示功能,帮助我们轻松地实现表单验证。但是,Joi 默认返回的错误信息格式并不友好,不太适合直接展示给终端用户。为了让错误信息更清晰、更易懂,我们可以使用 joi-error-formatter 这个 npm 包。

joi-error-formatter 是什么?

joi-error-formatter 是一个基于 Joi 的错误格式化工具,可以将 Joi 返回的错误信息格式化成人类可读的文本。它会将错误信息中的属性路径、错误类型和提示信息解析出来,并按照规定的格式进行拼接。

安装和使用

安装 joi-error-formatter 的命令如下:

安装完成后,我们需要在代码中引入它并进行相关设置。示例代码如下:

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

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

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

代码中,我们首先引入了 Joi 和 joi-error-formatter 两个 npm 包。然后定义了一个包含多个验证规则的对象 schema,在验证时,我们可以将验证规则传入 validate 方法中进行验证。

出现错误时,我们将错误对象 error 传入 joiErrorFormatter 方法中进行格式化处理,同时设置了 language 参数为 'zh-CN',表示将返回中文错误信息。最后将格式化后的错误信息返回给前端。

需要注意的是,我们在 options 对象中设置了 abortEarly: false,表示在出现错误时不要立即停止验证。这个参数默认为 true,如果设为 false,则可以验证出所有的错误信息,不会因为出现一条错误信息就终止验证。

从格式化错误信息中获取更多信息

使用 joi-error-formatter 进行错误信息格式化之后,我们还可以从格式化的错误信息中获取更多的信息。

在格式化的错误信息中,每一个属性的错误信息都会包含以下三个字段:

  • path:属性的路径。
  • type:属性的错误类型。
  • message:属性的提示信息。

下面是一个格式化后的错误信息的示例:

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

我们发现,上面的错误信息中包含了每个属性的具体错误信息,包括错误类型、提示信息以及属性的路径。利用这些信息,我们可以更灵活地处理错误。例如:

  • 我们可以根据路径(属性名)进行定位,将错误信息按需发送到相应的表单元素中。
  • 我们可以根据错误类型进行分类,选择不同的提示样式展示错误信息。
  • 我们可以对错误信息进行二次处理,例如将英文提示转化为中文等。

总结

使用 joi-error-formatter 进行错误信息格式化,可以让我们更方便地处理和展示表单验证出现的错误信息。它可以将 Joi 提供的错误信息进行标准化,让开发者可以从中获取更详细的错误信息。当然,我们也可以根据自己的需求进行二次处理,让错误信息呈现出更好的可读性和可操作性。因此,使用 joi-error-formatter 是非常推荐的。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562f781e8991b448e0c3d

纠错
反馈