📜  如何使用 Express.js 中的 next() 将变量传递给下一个中间件?(1)

📅  最后修改于: 2023-12-03 15:23:51.074000             🧑  作者: Mango

如何使用 Express.js 中的 next() 将变量传递给下一个中间件?

在 Express.js 应用程序中,中间件是一些函数,它们能够对进入应用程序的 HTTP 请求进行操作。这些函数可以执行任何操作,例如解析请求、验证身份、记录请求的信息、向客户端发送响应等。中间件函数可以通过 next() 方法将控制权交给下一个中间件。 next() 方法的调用会使 Express.js 应用程序跳过当前中间件函数并执行接下来的中间件函数。 在此过程中,您可以使用 next() 方法将变量传递给下一个中间件。

下面是一个示例代码,演示如何使用 next() 方法在 Express.js 应用程序中将变量传递给下一个中间件:

const express = require('express');
const app = express();

app.use((req, res, next) => {
  // 在请求对象 req 上设置一个变量
  req.user = { name: 'John' };
  // 调用 next() 方法将控制权交给下一个中间件
  next();
});

app.get('/', (req, res) => {
  // 从请求对象 req 中读取上一个中间件设置的变量
  const user = req.user;
  res.send(`Hello ${user.name}!`);
});

app.listen(3000, () => console.log('App listening on port 3000!'));

在上面的代码中,我们先定义了一个中间件函数,它会在请求对象 req 上设置一个名为 user 的变量。然后,我们调用 next() 方法将控制权交给下一个中间件。 在此中间件中,我们从请求对象 req 中读取上一个中间件设置的变量,并将其用于构建响应。最后,我们启动了应用程序并监听 3000 端口。

以上是使用 next() 方法将变量传递给下一个中间件的基础示例,您可以根据自己的需要进行修改和调整。 如果您想了解更多关于 Express.js 中间件的信息,请参考官方文档: https://expressjs.com/zh-cn/guide/using-middleware.html