npm 包 @expresso/validator 使用教程

阅读时长 6 分钟读完

在现代 Web 开发中,数据验证是前后端交互中不可或缺的环节。而为了减少开发者在数据验证上的工作量,社区中应运而生了各种优秀的验证库。其中,@expresso/validator 是一款轻量级的数据验证工具,可用于验证传入的表单数据、请求参数等。

本文将介绍如何使用 @expresso/validator 进行数据验证。

安装

使用 npm 命令安装 @expresso/validator:

基本使用

安装完毕后,我们就可以在代码中使用 @expresso/validator 了。

首先,引入 validator:

然后,创建一个 Validator 实例:

现在,我们可以开始编写验证函数了:

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

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

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

在上述代码中,我们定义了一个名为 schema 的验证规则对象,该对象表示要验证的数据字段及其验证规则。然后,我们定义了一个名为 data 的数据对象,该对象包含了我们要验证的数据。最后,我们调用了 validator 实例的 validate 方法,该方法接受两个参数,分别为要验证的数据对象和验证规则对象。

如果数据验证成功,validate 方法返回一个 Promise 对象,该对象的 then 回调函数会被执行。否则,validate 方法会抛出一个错误对象(具体格式请参阅下文“错误处理”部分)。

验证规则

@expresso/validator 支持多种数据类型和验证规则。下面是一些常用的验证规则示例:

required

用于检查字段是否为空:

type

用于检查字段是否属于某个类型:

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

支持的数据类型包括:

  • string(字符串)
  • number(数字)
  • boolean(布尔型)
  • date(日期)
  • email(电子邮件地址)
  • url(URL 地址)

minLength、maxLength

用于检查字符串类型字段的最小长度、最大长度:

min、max

用于检查数字类型字段的最小值、最大值:

错误处理

如果数据验证失败,validate 方法会抛出一个错误对象。该对象包含一个 errors 属性,该属性为一个数组,包含了验证失败的信息。每一条错误信息均有以下格式:

其中,field 表示验证失败的字段名称,message 表示错误消息。如果一个字段有多个验证规则,那么其可能会有多条错误信息。

为了更方便地处理验证失败的错误信息,@expresso/validator 为错误对象提供了一个 usefulErrors 属性,该属性为一个二维数组,包含了每个字段的错误信息:

在上述代码中,我们调用了错误对象的 usefulErrors 属性。该属性的输出结果如下:

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

使用该属性,我们可以更方便地处理验证失败的错误信息。

自定义验证规则

@expresso/validator 并不支持扩展自定义验证规则,不过我们可以使用原生的 JavaScript 实现自定义验证规则。

例如,我们希望验证用户名必须以大写字母开头,那么就可以这样写:

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

在上面的示例中,我们为用户名字段添加了一个 validate 属性,并通过 test 方法验证了用户名的格式。

小结

本文介绍了如何使用 @expresso/validator 进行数据验证。我们了解了基本使用方法、验证规则、错误处理和自定义验证规则等内容。

使用 @expresso/validator 无疑可以大大降低我们在数据验证上的工作量,同时也能够很好地提高代码的可读性和可维护性。

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