有人问了一些类似的问题,但我的问题是,如果我想传播我在不同的路由中间件中得到的中间结果,那么最好的方法是什么?
app.use(f1); app.use(f2); app.use(f3);
function f1(req,res,next) {
//some database queries are executed and I get results, say x1
res.locals.dbResults = {...};
next();
}
function f2(req,res,next) {
// more processing based upon req.locals.dbResults
res.locals.moreResults = {....};
next();
}
// ...
我认为我可以使用req通过不同的中间件获得相同的数据传播.当地人.此外,请求和响应对象似乎都在请求开始时将locals属性初始化为空对象.
此外,还可以设置res.mydata或req.我的数据属性也是吗?
从理论上讲,应用程序.本地人也可以用来通过不同的中间件传递这些数据,因为这些数据将在中间件之间持久存在,但这与应用程序的常规使用相反.当地人.它更多地用于特定于应用程序的数据.还需要在请求-响应周期结束时清除这些数据,以便下一个请求可以使用相同的变量.
What is the optimal and standard way to propagate intermediate results through middleware?