教程 express tutorial

中间件机制

中间件是 Express 的核心概念之一,它本质上是一个函数,能够访问请求对象(req)、响应对象(res)以及处理流程中的下一个中间件函数(next)。

什么是中间件?

中间件函数可以对请求进行处理、修改响应、结束请求响应周期或调用下一个中间件。它们像流水线一样串联起来,依次执行,形成请求的处理链。

中间件的作用

  • 处理请求数据(例如解析请求体)
  • 进行身份验证和权限校验
  • 日志记录和请求追踪
  • 静态资源服务
  • 错误处理

中间件的类型

  1. 应用级中间件
    绑定在整个应用上的中间件,使用 app.use() 或特定路由绑定。

  2. 路由级中间件
    绑定在某个路由路径上的中间件,只在匹配该路径时执行。

  3. 错误处理中间件
    具有四个参数 (err, req, res, next),专门处理应用中的错误。

  4. 第三方中间件
    由社区提供的中间件,如 body-parser、cors 等。

  5. 内置中间件
    Express 自带的中间件,如 express.static 用于托管静态资源。

中间件执行流程示意

请求 → 中间件1 → 中间件2 → 路由处理 → 响应

每个中间件必须调用 next() 才能将控制权交给下一个中间件,否则请求将被挂起。

示例

js
const express = require('express');
const app = express();

// 应用级中间件示例
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next(); // 传递到下一个中间件
});

app.get('/', (req, res) => {
  res.send('Hello Middleware!');
});

app.listen(3000);

`

中间件机制是 Express 强大灵活的基础,后续章节会详细介绍中间件的更多用法。