2013-05-29 6 views
6

Sto cercando di passare le mie variabili di sessione ai miei modelli di manubrio ma mi sto bloccando. In questo momento sto usando questo nella mia funzione app.configure:Express res.locals.someVariabile utilizzo in hbs (modello di manubri)

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

Si registra correttamente alla console, ma quando provo ad usare la variabile "sessione" nel mio modello manubrio, nulla si presenta. Ecco parte del mio modello:

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

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

     {{> footerPartial}} 
</body> 

Ecco ciò che viene registrato dalla console:

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

Tutte le idee?

risposta

2

Ho finalmente trovato la mia soluzione. Si scopre che mi stava chiamando questo:

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

dopo

app.use(app.router); 

Ha bisogno davvero di essere prima della app.router, ma dopo

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

Sì. In express, le funzioni del percorso vengono eseguite * all'interno * del middleware di app.router. – furydevoid