2015-04-23 52 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(); 
}); 

。这种技术被称为使用中间件。