你好我是Node / Express / Jade的新手,想知道一个好的设计模式,用于在用户登录时更改导航栏(而不是我猜测)。
举个例子,让我们说出我的模板' nav_home.jade'是一个简单的导航栏,其中有一个'登录'和'家庭'作为唯一的两个链接。当用户登录时,我希望“登录”'按钮更改为“退出”。
我打算采用不同的模板(比如' nav_loggedIn.jade)创建不同的布局,然后将路线更新为:
router.get('/', function(req, res) {
res.render('dashboard', { layout: 'layout_loggedIn' });
});
这是一个好的设计模式吗?或者有更好的方法可以为登录用户显示不同的视图吗?
感谢您的帮助!
答案 0 :(得分:2)
在主js文件中,您可以指定 res.locals.user 在用户执行登录过程后设置的对象,例如 req.user 然后在 Jade 模板中,您可以检查用户是否已登录并显示相关链接
// index.js or server.js
app.use(function(req,res,next){
if (req.user) {
res.locals.user = req.user;
}
next();
});
// Jade template
if (user)
a(href="/logout") Logout
else
a(href="/login") Login