使用会话变量包含一个 jade 文件

1 include pug

我正在开发一个具有 3 种不同 acctypes 的 Web 应用程序。学生教师和行政人员。根据登录的 acctype,我不想加载不同的菜单。我已将 acctype 分配给会话变量; #{session.acctype}

所以我以前是这样处理的; script(src='js/sidebar#{session.acctype}.js')

但我想摆脱在上面加载的 js 文件中使用的 document.write 的使用。所以现在我把菜单放在一个玉文件里面。

问题来了,不知道如何使用session变量来加载jade文件!我尝试了这个但没有成功; include sidebar#{session.acctype}.jade

那么,有什么办法可以处理这个问题吗?

小智 5

为了让您的模板能够访问会话变量,您需要将它们添加到res.session.locals. 实现此目的的一个简单方法是添加

app.use(function(req,res,next){
    res.locals.session = req.session;
    next();
});
Run Code Online (Sandbox Code Playgroud)

在致电之前向您提出申请app.use(app.router)。这种技术称为使用中间件。