【发布时间】:2021-06-17 09:16:14
【问题描述】:
总的来说,我是 Express 和 Typescript 的新手,我想了解中间件在请求-响应链中的工作方式。下面,我有一个函数,它启动快速服务器并一个接一个地配置两个中间件。
export async function startExpressServer() {
...
app.use(firstMiddleware);
app.use(secondMiddleware);
...
}
我了解请求流经此中间件链。每个中间件都进行自己的处理,然后调用next() 以便将执行传递给下一个中间件。
我的问题是:如果我在第二个中间件中修改/添加数据到 req/res 对象,我可以在第一个中间件中访问这些修改吗?
export const firstMiddleware: Handler = (req, res, next) => {
// do some processing here
next(); // call next function to go to secondMiddleware
// can I write some logic here to access the modified req/res objects from the secondMiddleware?
}
export const secondMiddleware: Handler = (req, res, next) => {
// add something to the req/res objects
next();
}
基本上,我试图弄清楚请求处理链是单向还是双向。如果数据仅在一个方向流动,您是否知道在我的用例中可能会派上用场的替代方案?
谢谢!
【问题讨论】: