2015-04-23 50 views
0

我正在開發一個具有3種不同acctypes的web應用程序。 學生老師和管理員。 取決於登錄的acctype,我不想加載不同的菜單。 我將acctype分配給一個會話變量; #{session.acctype}使用會話變量包含一個jade文件

因此,我曾經這樣處理它; script(src='js/sidebar#{session.acctype}.js')

但我想擺脫使用在上面加載的js文件中使用的document.write。 所以現在我在菜單裏面有一個玉文件。

問題出在這裏,我不知道如何使用session變量來加載一個jade文件! 我試過這個沒有任何成功; include sidebar#{session.acctype}.jade

那麼,有什麼辦法可以解決這個問題嗎?

回答

2

爲了讓您的模板能夠訪問您的會話變量,您需要將它們添加到res.session.locals。完成此操作的簡單方法是在您致電app.use(app.router)之前,向您的應用程序添加

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

。這種技術被稱爲使用中間件。