因此,当我们在Node.js应用程序上登录时,我有一个用户存储在session
中。我有管理员和默认用户,如果我在Jade模板中输出#{session.user.role}
,我会看到default
或admin
。在我的页面上进行测试时,我可以使用-if(session.user)
隐藏页面上的项目,以便在没有人登录时隐藏项目,但如何为不是管理员的用户隐藏项目?
我已尝试输入-if(session.user.role === 'default')
,但收到错误Cannot read property 'role' of undefined
。所以这对任何人都没有任何想法?
以下是使用Mongoose的用户架构:
var User = new Schema({
'key' : {
unique : true,
type : Number,
default: getId
},
'username' : { type : String,
validate : [validatePresenceOf, 'a Username is required'],
set : toLower,
index : { unique : true }
},
'password' : String,
'role' : String,
});
答案 0 :(得分:3)
- if (typeof session.user != 'undefined' && session.user.role === 'default')