Node.js 中使用 express-validator 进行数据验证的教程

阅读时长 6 分钟读完

如果你正在开发一个 Node.js 的 Web 应用,那么对用户输入的数据进行验证是非常重要的。在 Node.js 中,我们可以使用 express-validator 库来方便地实现数据验证。本文将介绍如何使用 express-validator 进行数据验证。

安装 express-validator

首先,我们需要安装 express-validator 库。可以使用以下命令来安装:

使用 express-validator 进行数据验证

使用 express-validator 进行数据验证的过程分为以下几步:

  1. 引入 express-validator 库
  1. 在路由中使用验证器

在路由中使用验证器,需要使用 body() 方法来定义要验证的字段,然后可以链式调用各种验证方法,如 isEmail()isLength()isInt() 等。

以下代码演示了如何验证一个包含 name、email、password 字段的表单:

以上代码表示,name 字段不能为空,email 字段必须是合法的邮箱格式,password 字段长度不能少于 6 位。如果验证失败,就会返回错误信息。我们可以在后面加上 .withMessage() 方法来自定义错误信息。

  1. 获取验证结果

我们可以使用 validationResult() 方法来获取验证结果,如果验证成功,validationResult() 方法将返回一个空数组,否则将返回一个包含所有错误信息的数组。

以下代码演示如何获取验证结果:

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

以上代码表示,如果验证失败,将返回一个包含所有错误信息的数组。

express-validator 的常用验证方法

以下是 express-validator 常用的验证方法:

方法名 描述
isEmail() 验证字符串是否为合法的电子邮件地址
isLength() 验证字符串的长度是否在指定范围内
isInt() 验证字符串是否为整数
isNumeric() 验证字符串是否为数字
isAscii() 验证字符串是否仅包含 ASCII 字符
isAlphanumeric() 验证字符是否为字母和数字
isURL() 验证字符串是否为 URL
isIn() 验证字符串是否包含在指定数组中
isMongoId() 验证字符串是否为 MongoDB 的 ObjectID
isPostalCode() 验证字符串是否为邮政编码
isMobilePhone() 验证字符串是否为手机号码

使用自定义验证方法

如果 express-validator 提供的验证方法还不够用,你可以自定义验证方法。要定义一个自定义验证方法,可以使用 body() 方法返回的对象的 custom() 方法来定义一个验证函数,该函数将接收当前字段的值作为参数,如果验证失败,应该返回一个 Promise,否则应该返回 null。

以下示例演示如何使用自定义验证方法:

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

以上代码表示,我们自定义了一个方法来验证姓名必须为中文,如果验证失败,将返回一个错误信息。

总结

本文介绍了如何在 Node.js 中使用 express-validator 库来进行数据验证。我们可以使用 body() 来定义要验证的字段,然后可以链式调用各种验证方法来验证其值是否符合要求。除此之外,我们还介绍了自定义验证方法的使用。如果你正在开发一个 Node.js 的 Web 应用,使用 express-validator 库来进行数据验证将会非常方便。

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

纠错
反馈