15 中间件与路由之使用中间件
在上一篇我们介绍了如何用 Express 框架创建第一个应用。这一篇,我们将深入了解 中间件 的概念,以及如何在路由中使用中间件。中间件在 Express 中是一个非常重要的部分,它为我们提供了处理请求和响应的强大功能。
什么是中间件?
在 Express 中,中间件是指那些可以处理请求对象(req
)、响应对象(res
)和下一个中间件函数的函数。中间件可以访问请求对象、响应对象以及终结请求-响应循环的功能。中间件可以执行以下任务:
- 执行任何代码
- 修改请求和响应对象
- 结束请求-响应循环
- 调用下一个中间件函数
中间件的使用语法如下:
1 | app.use(function(req, res, next) { |
如何使用中间件
首先,我们需要在创建的 Express 应用中添加一些中间件。以下将通过一个简单的示例来展示如何定义和使用中间件。
示例:日志中间件
我们将创建一个日志中间件,记录每次请求的时间和 URL。
1 | const express = require('express'); |
在这个例子中,我们定义了一个 logger
中间件,它会在每次请求时打印当前时间和请求的 URL。通过使用 app.use(logger)
,我们将这个中间件注册到应用中,这样每当有请求到达时,它都会被调用。
中间件的顺序
中间件的执行顺序是由它们被注册的顺序决定的。我们可以根据需要控制中间件的调用顺序。例如,您可能想在路由处理之前先进行身份验证中间件的检查。
1 | const authMiddleware = (req, res, next) => { |
在上述代码中,authMiddleware
用于处理身份验证逻辑。如果用户认证通过,则调用 next()
,让控制权传递给下一个中间件或路由。如果认证失败,则返回状态码为 403 的响应。
路由中使用中间件
中间件也可以局部使用,仅在某个特定的路由中有效。例如:
1 | // 创建一个特定路由的中间件 |
在上面的代码中,我们创建了一个 specificLogger
中间件,并将其应用于 /about
路由。这意味着只有当请求此特定路由时,中间件才会执行。
小结
在本节中,我们学习了什么是中间件、如何定义和使用中间件。中间件提供了一个非常灵活的机制来处理请求和响应,使得我们可以在请求处理流程中插入特定的功能。
在下一篇中,我们将继续讨论 中间件与路由,并重点介绍创建路由的具体步骤和实例。希望大家继续关注教程的进展!
15 中间件与路由之使用中间件