Express中间件是一个函数,它可以访问请求对象(req)、响应对象(res)和应用程序的请求-响应循环中的下一个中间件函数。Express中间件可以执行以下任务:

  1. 执行任何代码。
  2. 修改请求和响应对象。
  3. 终结请求-响应循环。
  4. 调用堆栈中的下一个中间件函数。

Express中间件可以是应用级中间件、路由级中间件或错误处理中间件。

应用级中间件

应用级中间件绑定到应用对象(app)上,作用于应用的每个请求。使用app.use()方法来加载应用级中间件。例如:

app.use(function(req, res, next) {
  console.log('Time:', Date.now());
  next();
});

路由级中间件

路由级中间件和应用级中间件类似,只是它绑定到特定的路由上。使用router.use()方法加载路由级中间件。例如:

var router = express.Router();

router.use(function(req, res, next) {
  console.log('Router Time:', Date.now());
  next();
});

错误处理中间件

错误处理中间件是一个带有四个参数的函数(err, req, res, next),用于捕获应用程序中的错误。使用app.use()方法加载错误处理中间件。例如:

app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

内置中间件

Express框架提供了许多内置中间件,可以简化开发过程。例如express.static中间件可以提供静态文件服务。

app.use(express.static('public'));

以上是Express中间件的基本介绍,希望能帮助你更好地理解Express框架的中间件机制。如果想了解更多信息,可以查看Express官方文档:https://expressjs.com/zh-cn/guide/using-middleware.html。