2012-06-23 59 views
0

我如何可以显示不同的事情,这取决于他们是否登录的用户一个非常简单的例子:ExpressJS显示不同看法的谐音,以记录在与非登录用户

  • 显示登录按钮用于非记录的在用户中
  • 显示欢迎{username} |注销否则

我相信我应该检查的会议,但我怎么能不经过会话(或只是用户名/ ID)到视图每次

+0

你为什么反对通过了会议以观点?这不是会议的目的吗? –

+0

我在想这个视图只能接收它所需要的内容,仅供阅读之用。无论如何,我怎么能通过会议的观点,而不必在所有路线这样做? 'res.render(“something”,{session:req.session})' –

+0

只读的目的是为了谁?看看'res.locals' for express 3.0(忘记它是什么2.x) –

回答

0

1)创建一个动态帮手“用户”这样做如:

app.dynamicHelpers({ 
    user: function(req, res){ 
    var roles, name; 

    if (req.session && req.session.auth == true) { 
     roles = ['member']; 
     name = (req.session.user) ? req.session.user.name : 'Registered member'; 
     id = (req.session.user) ? req.session.user.id : null; 
    } 
    else { 
     roles = ['guest']; 
     name = 'Guest'; 
     id = null; 
    } 

    return { 
     name: name, 
     id: id, 
     roles: roles, 
     isGuest: roles.indexOf('guest') !== -1, 
     isMember: roles.indexOf('member') !== -1, 
     isAdmin: roles.indexOf('admin') !== -1 
    } 
    } 
}); 

2)在视图(如果你使用玉)使用以下条件的符号:

if user.isGuest 
    h2 Please register! 
if user.isMember 
    h2 Hello, member!