Express 中如何使用中间件?

· 约 4 分钟读完 · 第 12 / 120 章

推荐答案

在 Express 中使用中间件非常简单,可以通过 app.use() 方法将中间件函数添加到应用程序的请求处理管道中。以下是一个基本示例:

在这个示例中,myMiddleware 是一个自定义的中间件函数,它会在每个请求到达时执行。app.use(myMiddleware) 将该中间件添加到应用程序的请求处理管道中。

本题详细解读

什么是中间件?

中间件是 Express 框架中的一个核心概念,它是一个函数,可以访问请求对象 (req)、响应对象 (res) 和应用程序的请求-响应循环中的下一个中间件函数 (next)。中间件函数可以执行以下任务:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 结束请求-响应循环。
  • 调用堆栈中的下一个中间件。

中间件的类型

  1. 应用级中间件:通过 app.use() 或 app.METHOD()(如 app.get()、app.post() 等)绑定到应用程序实例的中间件。

  2. 路由级中间件:与应用级中间件类似,但绑定到 express.Router() 实例。

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

  4. 内置中间件:Express 自带的一些中间件,如 express.static 用于提供静态文件。

  5. 第三方中间件:由社区提供的中间件,可以通过 npm 安装并使用。

中间件的执行顺序

中间件的执行顺序非常重要,Express 会按照中间件添加的顺序依次执行它们。如果某个中间件没有调用 next(),请求-响应循环将终止,后续的中间件和路由处理程序将不会被执行。

示例代码解析

在这个示例中:

  1. myMiddleware 是一个自定义的中间件函数,它在每个请求到达时打印一条消息。
  2. app.use(myMiddleware) 将该中间件添加到应用程序的请求处理管道中。
  3. 当用户访问根路径 / 时,中间件会先执行,然后控制权传递给路由处理程序,最终返回 "Hello World!"。

通过这种方式,你可以在 Express 中灵活地使用中间件来处理请求、修改响应或执行其他任务。