Node.js 中,中间件 (Middleware) 和路由 (Routing) 是构建 Web 应用程序的重要概念。

中间件

中间件是一个函数或一组函数,它们在处理 HTTP 请求和响应之间进行处理。它们可以在请求被路由处理之前或之后进行一些操作,例如身份验证、日志记录、数据解析等。中间件函数通常拥有 req (请求对象)、res (响应对象) 和 next (传递到下一个中间件函数的回调) 这三个参数。

中间件可以使用 app.use 或 router.use 方法来添加到应用程序或路由器实例中。例如:

app.use((req, res, next) => {
  // 在路由处理之前进行一些操作
  next();
});
 
app.get('/home', (req, res) => {
  // 处理 '/home' 路由
});

在这个例子中,中间件函数被添加到应用程序实例中,它会在处理 /home 路由之前执行。

路由

路由是确定请求应该如何被处理和响应的机制。您可以使用 app.getapp.post 等方法定义不同的路由,它们对应于 HTTP 请求的不同方法。路由可以包含动态参数和处理程序函数。

app.get('/users/:id', (req, res) => {
  const userId = req.params.id; // 获取动态参数
  // 根据 userId 做一些操作
  res.send('User details');
});

在这个例子中,/users/:id 是一个带有动态参数的路由。当用户请求这个路由时,请求对象的 params 属性中将包含动态参数的值。

通过使用中间件和路由,您可以创建灵活和可扩展的 Web 应用程序。中间件可以帮助您实现共享逻辑和处理公共任务,而路由定义了请求的处理方式。