📅  最后修改于: 2023-12-03 15:37:53.910000             🧑  作者: Mango
在一个 web 应用程序中,验证是至关重要的一步。它可以确保只接收可信的数据,确保应用程序的安全性和完整性。使用 Node.js 的开发人员可以使用 express-validator 模块轻松验证输入。
本文将向你介绍如何使用 express-validator 模块验证输入字段中的输入是否包含大写字母。
在项目目录中打开终端并运行以下命令以初始化 package.json 文件:
npm init -y
接下来,安装以下依赖:
npm install express express-validator
创建一个名为 app.js 的新文件。在其中,导入所需的模块和库并创建一个 Express 应用程序。
const express = require('express');
const { check, validationResult } = require('express-validator');
const app = express();
// TODO: 添加路由和中间件
现在,我们将在应用程序中创建一个路由和中间件函数。中间件函数将使用 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 字段,并发送回包含输入的响应消息。
在终端中运行以下命令,启动应用程序:
node app.js
打开浏览器,输入以下 URL:
http://localhost:3000/?input=MyInput
应用程序应该返回以下响应:
输入中包含大写字母:MyInput
如果输入不包含大写字母,则会返回一个错误消息:
{
"errors": [
{
"value": "myinput",
"msg": "输入必须包含大写字母",
"param": "input",
"location": "query"
}
]
}
在本文中,我们学习了如何使用 Express 和 express-validator 验证输入字段中的输入是否包含大写字母。通过使用 check() 方法和 withMessage() 方法,我们可以轻松地验证输入是否符合要求。同时,使用 validationResult() 方法确保验证结果是否存在错误,维护应用程序的完整性和安全性。