我有一个Jade文件,我的所有模板都扩展名为layout.jade.在其中我希望能够在用户当前登录时具有注销按钮(这在req.session中保持跟踪).
所以layout.jade会有类似的东西,
-if (loggedin) a.navButton(href="/logout") Log Out
页面的路径看起来像,
app.get("/foo",function(req,res) { res.render("foo",{loggedin: req.session.isValidUser}); });
问题是,我不想在每个路由中手动填充登录变量.有没有办法可以使用Express中间件自动为发送到res.render的对象设置一些默认选项?或者有更好的方法来做到这一点?
解决方法
看起来这实际上是一个记录在案的功能,我只是很难找到,除非有人有更好的方法去做;从最新的
Express documentation,
app.locals: Application local variables are provided to all templates
rendered within the application. This is useful for providing helper
functions to templates,as well as app-level data.
req.session.username = profile.username; app.locals.username = profile.username;
app.get('/logout',function (req,res) { delete app.locals.username; req.session.destroy(); res.redirect('/login'); });
最后在layout.jade /我的所有模板中,
- if(username) a.navButton(href="/logout") logout
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。