中间件(Middleware
)是Express
.js中一个重要的概念,它是在请求和响应之间执行的函数。中间件函数可以访问请求对象(req)和响应对象(res),并且可以修改它们、执行特定的任务,或将控制权传递给下一个中间件。
在Express.js中,可以通过app.use()或app.METHOD()方法使用中间件。app.use()方法可以将中间件应用到每个请求,而app.METHOD()方法则将其应用到特定的HTTP方法的请求上。
以下是使用中间件的示例:
const express = require('express');
const app = express();
// 自定义中间件函数
const myMiddleware = (req, res, next) => {
// 执行某些特定的任务
console.log('执行中间件任务');
// 修改请求对象
req.customProperty = '自定义属性';
// 将控制权传递给下一个中间件
next();
}
// 应用全局中间件
app.use(myMiddleware);
// 应用特定路径的中间件
app.get('/users', myMiddleware, (req, res) => {
// 访问中间件修改后的请求对象
console.log(req.customProperty);
// 返回响应
res.send('用户列表');
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动');
});
在上面的例子中,我们创建了一个名为myMiddleware
的自定义中间件函数。我们使用app.use()方法将该中间件应用到每个请求上。然后,我们使用app.get()方法定义了一个特定路径的请求处理程序,并将myMiddleware
作为第二个参数传递给app.get(),以将中间件应用到该特定请求上。
在myMiddleware
中,我们执行了一些特定的任务,例如打印消息、修改请求对象,然后通过调用next()函数将控制权传递给下一个中间件或请求处理程序。
通过这种方式,您可以创建和使用自己的中间件,可以在其中执行各种任务,例如身份验证、日志记录、错误处理等。使用中间件的好处是可以将代码逻辑分解成可重用的模块,并实现请求的预处理和后处理。