비슷한 질문이 있지만 다른 라우팅 미들웨어를 통해 얻은 중간 결과를 전파하려면 가장 좋은 방법은 무엇입니까?
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.mydata 속성도 설정할 수 있습니까?
이론적으로 app.locals는 미들웨어간에 지속될 것이기 때문에 다른 미들웨어를 통해이 데이터를 전달하는 데 사용할 수도 있지만 app.locals의 기존 사용과는 반대입니다. 애플리케이션 특정 데이터에 더 많이 사용됩니다. 다음 요청에 동일한 변수를 사용할 수 있도록 요청-응답주기가 끝날 때 해당 데이터를 지워야합니다.
미들웨어를 통해 중간 결과를 전파하는 최적의 표준 방법은 무엇입니까?