2014-01-16 15 views
5

グローバルバールはJavaScriptやプログラミング全体で悪い習慣であることは知っていますが、私の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がどのセッションが動作しているのかを知っていて、それを公開することができる場合にのみ機能します。 – matanster

関連する問題