编写中间件以用于Express应用程序
概述
中间件函数能够访问请求对象(req)、响应对象(res)以及应用程序的请求/响应循环中的下一个中间件函数。下一个中间件函数通常由名为next的变量来表示。
中间件函数可以执行以下任务:
- 执行任何代码。
- 对请求和响应对象进行更改。
- 结束请求/响应循环
- 调用堆栈中的下一个中间件
如果当前中间件函数没有结束请求/响应循环,那么它必须调用next().以将控制权传递给下一个中间件函数。否则,请求将保持挂起状态。
以下是“Hello World”Express 应用程序的简单示例,将为其定义两个中间件函数:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000);
请注意以上对next()的调用。调用此函数时,将调用应用程序中的下一个中间件函数。
next()
函数不是 Node.js 或 Express API 的一部分,而是传递给中间件函数的第三自变量。
next()
函数可以命名为任何名称,但是按约定,始终命名为“next”。为了避免混淆,请始终使用此约定。