📌  相关文章
📜  如何仅使用 express-validator 验证输入字段中的输入是否包含大写字母?(1)

📅  最后修改于: 2023-12-03 15:37:53.910000             🧑  作者: Mango

如何仅使用 express-validator 验证输入字段中的输入是否包含大写字母?

在一个 web 应用程序中,验证是至关重要的一步。它可以确保只接收可信的数据,确保应用程序的安全性和完整性。使用 Node.js 的开发人员可以使用 express-validator 模块轻松验证输入。

本文将向你介绍如何使用 express-validator 模块验证输入字段中的输入是否包含大写字母。

步骤
步骤 1:设置环境

在项目目录中打开终端并运行以下命令以初始化 package.json 文件:

npm init -y

接下来,安装以下依赖:

npm install express express-validator
步骤 2:创建 Express 应用程序

创建一个名为 app.js 的新文件。在其中,导入所需的模块和库并创建一个 Express 应用程序。

const express = require('express');
const { check, validationResult } = require('express-validator');

const app = express();

// TODO: 添加路由和中间件
步骤 3:添加路由和中间件

现在,我们将在应用程序中创建一个路由和中间件函数。中间件函数将使用 check() 方法来验证输入中是否包含大写字母。如果包含,它将返回一个错误消息。否则,它将调用 next() 继续执行下一个中间件函数。

/**
 * 根路由
 */
app.get('/', [
  // 使用 check() 方法检查输入中是否包含大写字母
  check('input')
    .if((value, { req }) => req.query.input) // 只验证 GET 请求参数中的 input 字段
    .matches(/[A-Z]/)
    .withMessage('输入必须包含大写字母'),
  /**
   * 中间件函数
   */
  (req, res) => {
    // 检查验证结果是否存在错误
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    // 处理 GET 请求参数中的 input 字段
    const input = req.query.input;
    res.send(`输入中包含大写字母:${input}`);
  }
]);

在上面的代码中,我们首先使用 check() 方法来检查是否输入是一个 GET 请求参数中的 input 字段,并且包含至少一个大写字母。输入不符合要求时,调用 withMessage() 方法返回错误消息。

然后,我们创建一个中间件函数,用于检查验证结果是否存在错误,并在需要时返回错误代码和错误消息。如果没有出现错误,则处理 GET 请求参数中的 input 字段,并发送回包含输入的响应消息。

步骤 4:启动服务器

在终端中运行以下命令,启动应用程序:

node app.js

打开浏览器,输入以下 URL:

http://localhost:3000/?input=MyInput

应用程序应该返回以下响应:

输入中包含大写字母:MyInput

如果输入不包含大写字母,则会返回一个错误消息:

{
    "errors": [
        {
            "value": "myinput",
            "msg": "输入必须包含大写字母",
            "param": "input",
            "location": "query"
        }
    ]
}
结论

在本文中,我们学习了如何使用 Express 和 express-validator 验证输入字段中的输入是否包含大写字母。通过使用 check() 方法和 withMessage() 方法,我们可以轻松地验证输入是否符合要求。同时,使用 validationResult() 方法确保验证结果是否存在错误,维护应用程序的完整性和安全性。