2014-01-16 7 views
5

나는 글로벌 변수가 자바 스크립트와 프로그래밍 전반에서 나쁜 습관이라는 것을 알고 있지만 express.js 앱에서 내 사용자 세션을 사용할 수있게하고 싶지 않다. 내 컨트롤러에서 내 모델로 세션 매개 변수를 넘겨주세요.NodeJS (Express.js) : 세션을 글로벌하게 만드는 법

어떻게하면됩니까?

감사합니다. 당신이 정말로 이렇게 할 경우, 나는이 권하고 싶지 않다하지만 노드의 global -object에 요청 또는 세션을 추가

+1

당신은 정말 "모든 것을 세션 매개 변수를 전달"해야합니까? 'req.session'에서 세션을 액세스 할 수 없습니까? – ZimSystem

+2

이것은'req'를 지나치는 것을 의미합니다. – matanster

답변

1

그래서 같이이 문제를 해결 결국 :

var appendLocalsToUseInViews = function(req, res, next) 
{    
    //append request and session to use directly in views and avoid passing around needless stuff 
    res.locals.session = req.session; 
    next(null, req, res); 
} 

그런 다음 미들웨어에 추가 :

app.use(appendLocalsToUseInViews); 
-1

...

+0

분명히 이것은 작동하지 않거나 조금 더 정교한 작업을 간소화하는 것입니다. 병렬로 많은 세션을 활성화해야합니다. 묻는 사람은 함수 호출 내에서 올바른 세션에 액세스하려고했습니다. 이것은 node.js가 어떤 세션을 위해 작동하는지 알고 API를 통해 공개 할 수있는 경우에만 작동합니다. – matanster

관련 문제