Express 中的中间件是一个函数,它可以访问请求对象(req
)、响应对象(res
)和应用程序的请求/响应循环中的下一个中间件函数。这个下一个中间件函数通常由一个名为 next
的变量表示。
中间件的功能包括:
- 执行任何代码。
- 修改请求和响应对象。
- 结束请求/响应循环。
- 调用堆栈中的下一个中间件。
如果当前中间件没有结束请求/响应循环,则必须调用 next()
方法将控制权传递给下一个中间件,否则请求就会挂起。
Express 应用程序是由一系列中间件函数调用组成的。这些函数可以执行以下任务:
- 执行代码、更改输入和输出。
- 验证请求的数据。
- 处理请求后的清理。
- 添加额外的功能到 Express 框架中。
示例
假设我们需要记录所有传入请求的日志,我们可以使用如下的中间件:
javascriptconst express = require('express'); const app = express(); // 日志中间件 app.use((req, res, next) => { console.log(`${new Date().toISOString()} - ${req.method} request to ${req.url}`); next(); // 继续到下一个中间件 }); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); });
在这个例子中,中间件首先打印出请求的时间、方法和 URL,然后调用 next()
继续处理链中的下一个中间件。如果不调用 next()
,则请求将在此中止,客户端将不会收到任何响应。
2024年7月21日 20:57 回复