2013-05-29 17 views
6

我試圖將我的會話變量傳遞給我的把手模板,但我陷入困境。現在,我在我的app.configure功能使用此:在hbs(handlebars模板)中使用Express 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

相關問題