节点101:用户登录时更改导航栏

时间:2016-06-22 16:09:41

标签: node.js express pug

你好我是Node / Express / Jade的新手,想知道一个好的设计模式,用于在用户登录时更改导航栏(而不是我猜测)。

举个例子,让我们说出我的模板' nav_home.jade'是一个简单的导航栏,其中有一个'登录'和'家庭'作为唯一的两个链接。当用户登录时,我希望“登录”'按钮更改为“退出”。

我打算采用不同的模板(比如' nav_loggedIn.jade)创建不同的布局,然后将路线更新为:

router.get('/', function(req, res) {
  res.render('dashboard', { layout: 'layout_loggedIn' });
});

这是一个好的设计模式吗?或者有更好的方法可以为登录用户显示不同的视图吗?

感谢您的帮助!

1 个答案:

答案 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