2013-05-29 11 views
6

セッション変数を自分のハンドルバーテンプレートに渡そうとしていますが、止まっています。今、私は私のapp.configure機能でこれを使用しています:hbsでのres.locals.someVariableの使用(ハンドルバーテンプレート)

app.use(function(req, res, next){ 
     res.locals.session = req.session; 
     console.log(res.locals.session); 
     next(); 
}); 

それはコンソールに正しく記録されますが、私は私のハンドルバーテンプレートに「セッション」変数を使用しようとすると、何も現れません。ここに私のテンプレートの一部です:

<body> 
     <nav> 
      {{> topBarPartial}} 

      {{> secondaryBarPartial}} 
     </nav> 
     <div> 
      <p>before</p> 
      {{session}} 
      <p>after</p> 
      {{> mainPartial}} 
     </div> 

     {{> footerPartial}} 
</body> 

ここでは、コンソールでログに記録されているものです。

{ cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true }, 
    userId: 45253262, 
    name: 'Austin' } 

任意のアイデア?

答えて

2

最終的に私の解決策が見つかりました。それは私がこれを呼んでいたことが判明:

app.use(function(req, res, next){ 
     res.locals.session = req.session; 
     console.log(res.locals.session); 
     next(); 
}); 

app.use(app.router); 

後にそれが実際にapp.router前にする必要がありますが、はい

app.use(express.session({ 
     secret: '***********' 
    })); 
+0

後。 expressでは、あなたのルート関数はapp.routerミドルウェア内で*実行されます。 – furydevoid

関連する問題