如何根据用户是否登录向用户显示不同的内容。一个非常简单的用例:
- 显示未登录用户的登录按钮
- 显示欢迎 {用户名} | 否则注销
我相信我应该检查会话但是我怎么能这样做而不每次都将会话(或只是用户名/ID)传递到视图中
如何根据用户是否登录向用户显示不同的内容。一个非常简单的用例:
我相信我应该检查会话但是我怎么能这样做而不每次都将会话(或只是用户名/ID)传递到视图中
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) 在视图中(如果您使用 Jade)使用以下条件符号:
if user.isGuest
h2 Please register!
if user.isMember
h2 Hello, member!