Express 中应用级中间件是什么?

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

推荐答案

在 Express 中,应用级中间件是指通过 app.use() 或 app.METHOD()(如 app.get()、app.post() 等)绑定到应用程序实例上的中间件函数。这些中间件函数会在每个请求到达时执行,并且可以访问请求对象 (req)、响应对象 (res) 以及下一个中间件函数 (next)。

应用级中间件通常用于处理应用程序级别的逻辑,例如日志记录、身份验证、请求解析等。

本题详细解读

什么是应用级中间件?

应用级中间件是 Express 框架中的一种中间件类型,它直接绑定到 Express 应用程序实例上。与路由级中间件不同,应用级中间件不依赖于特定的路由路径,而是对所有的请求都生效(除非指定了路径)。

如何使用应用级中间件?

应用级中间件可以通过 app.use() 或 app.METHOD() 方法来绑定。以下是一些常见的用法:

  1. 使用 app.use() 绑定中间件:

    在这个例子中,中间件函数会在每个请求到达时执行,记录当前时间,然后调用 next() 将控制权传递给下一个中间件或路由处理程序。

  2. 使用 app.METHOD() 绑定中间件:

    在这个例子中,中间件函数仅对 GET 请求生效,并且会在处理请求之前执行。

应用级中间件的常见用途

  • 日志记录: 记录每个请求的详细信息,如请求时间、请求方法、请求路径等。
  • 身份验证: 检查用户是否已登录,如果未登录则重定向到登录页面。
  • 请求解析: 解析请求体中的数据,如 JSON、URL 编码数据等。
  • 错误处理: 捕获并处理应用程序中的错误。

应用级中间件的执行顺序

应用级中间件的执行顺序与它们在代码中的定义顺序有关。Express 会按照中间件定义的顺序依次执行它们,直到某个中间件不再调用 next() 或者发送响应为止。

在这个例子中,First middleware 会先于 Second middleware 执行。

总结

应用级中间件是 Express 中非常强大的工具,它允许开发者在请求到达路由处理程序之前或之后执行一些逻辑。通过合理使用应用级中间件,可以有效地管理应用程序的请求处理流程,并实现各种功能需求。