📅  最后修改于: 2023-12-03 15:23:51.074000             🧑  作者: Mango
在 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