Express中间件是处理请求的核心函数,可执行代码、修改请求响应、调用下一个中间件或结束请求。它分为应用级、路由级、错误处理和第三方类型,通过app.use()等方法挂载。自定义中间件如身份验证需检查token并正确调用next()。中间件按定义顺序执行,解析数据的中间件需前置,错误处理中间件需四参数且放最后,避免阻塞或漏调next()。

在使用 Express 构建 Node.js 应用时,中间件是核心概念之一。它让你能在请求被处理的流程中插入自定义逻辑,比如日志记录、身份验证、数据解析等。开发自定义中间件不仅能提升代码复用性,还能让应用结构更清晰。
Express 中间件是一个函数,它能访问请求对象(req)、响应对象(res)和下一个中间件函数(next)。中间件可以执行任意代码、修改请求或响应对象、结束响应周期,或者调用堆栈中的下一个中间件。
一个典型的中间件函数结构如下:
function myMiddleware(req, res, next) {
console.log('请求时间:', Date.now());
next(); // 继续下一个中间件
}
你只需要调用 next() 来将控制权交给下一个中间件。如果不调用 next(),请求就会挂起。
立即学习“Java免费学习笔记(深入)”;
根据用途不同,中间件可分为应用级、路由级、错误处理和第三方中间件。
例如,添加一个日志中间件:
app.use((req, res, next) => {
console.log(`${req.method} ${req.path}`);
next();
});
你可以基于业务需求编写自己的中间件。比如实现一个简单的身份验证中间件:
function authMiddleware(req, res, next) {
const token = req.headers['authorization'];
if (!token) {
return res.status(401).json({ error: '未提供认证令牌' });
}
// 假设验证通过
if (token === 'secret-token') {
next();
} else {
res.status(403).json({ error: '无效令牌' });
}
}
// 使用
app.use('/admin', authMiddleware);
这个中间件只对 /admin 路径下的请求生效,确保只有携带正确 token 的请求才能继续。
Express 按照定义顺序依次执行中间件。因此,顺序直接影响行为。比如:
错误处理示例:
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('服务器出错');
});
基本上就这些。掌握中间件机制,能让 Express 应用更灵活、可维护性更强。不复杂但容易忽略的是执行顺序和 next() 的调用时机。写中间件时保持逻辑清晰,避免阻塞或遗漏调用 next()。基本上就这些。
以上就是JavaScript Express中间件开发的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号