Express 미들웨어의 req.local 대 res.local 대 res.data 대 req.data 대 app.local
비슷한 질문이 몇 가지 있지만 다른 라우팅 미들웨어에 따라 중간 결과를 전파하려면 어떻게 하는 것이 가장 좋을까요?
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.local을 사용하여 다른 미들웨어를 통해 동일한 데이터 전파를 얻을 수 있다고 생각합니다.또한 요청 및 응답 개체 모두 요청 시작 시 빈 개체로 초기화된 로컬 속성을 가지고 있는 것으로 나타납니다.
또한 res.mydata 또는 req.mydata 속성도 설정할 수 있습니까?
이론적으로, app.local은 다른 미들웨어를 통해 이 데이터를 전달하는 데에도 사용될 수 있습니다. 미들웨어 전반에 걸쳐 지속되지만 이는 app.local의 기존 사용과는 반대되는 것입니다.응용 프로그램별 데이터에 더 많이 사용됩니다.또한 동일한 변수를 다음 요청에 사용할 수 있도록 요청-응답 주기가 끝날 때 데이터를 삭제해야 합니다.
미들웨어를 통해 중간 결과를 전파하는 최적의 표준 방법은 무엇입니까?
처럼 말하신것둘다럼처씀 둘 다.req.locals
,res.locals
자신의 된 키 는또심어자신정의키된의지키▁your정▁or▁even된의▁own▁defined.res.userData
사용할 수 있습니다.익스프레스와 뷰는 익스프레스에서 할 수 .res.locals
데이터를 사용자 보기에서 사용할 수 있습니다(이 게시물 참조).미들웨어 내부에 중간 데이터를 설정하는 것이 일반적입니다.req.locals
를덮않면으려에서 보기 않으려면res.locals
공식적으로 문서화되지는 않았지만요
res.locals 요청 범위에 해당하는 응답 로컬 변수를 포함하므로 해당 요청/응답 주기 동안 렌더링된 뷰(있는 경우)에만 사용할 수 있는 개체입니다.그렇지 않으면 이 속성은 다음과 같습니다.
app.locals
.이 속성은 요청 경로 이름, 인증된 사용자, 사용자 설정 등과 같은 요청 수준 정보를 표시하는 데 유용합니다.
출처: http://expressjs.com/en/api.html#res.locals
나는 express 문서를 읽다가 req.local을 접하지 못했고, 존재하지도 않는다고 생각합니다.
제가 조언하고 싶은 것은 보기에 렌더링될 데이터를 저장하기 위해 res.local을 사용하는 것입니다.
사용자 지정 데이터를 저장하려면 res 또는 requ.data={} 인스턴스 내부에 속성(가능하면 배열 또는 개체)을 만든 다음 이 "개체" 내부에 데이터를 저장합니다.
언급URL : https://stackoverflow.com/questions/33451053/req-locals-vs-res-locals-vs-res-data-vs-req-data-vs-app-locals-in-express-mi
'source' 카테고리의 다른 글
ORACLE SQL 날짜 범위 교차점 (0) | 2023.08.30 |
---|---|
MySQL 대량 INSERT 또는 UPDATE (0) | 2023.08.30 |
두 배열의 값이 동일한지 확인하는 방법 (0) | 2023.08.30 |
2차 활동에서 1차 활동으로 데이터를 전달하는 방법은? - Android (0) | 2023.08.30 |
추가 방법 후 Jquery click 이벤트가 작동하지 않음 (0) | 2023.08.30 |