【发布时间】:2016-08-19 15:54:53
【问题描述】:
这是我的路线:
router.get('/home', function (req, res) {
User.findOne({_id: req.user._id}, function (err, user) {
if (err) return next(err);
res.render('home', {user: user});
});
});
基本上,为了让某人查看此 /home 页面,他们需要登录,这就是 User.findOne 发挥作用的地方。它将在“用户”集合中搜索用户;如果它没有找到用户(如果用户没有登录),它将返回一个错误。否则,它将向他们显示 /home 页面。
现在,我希望我的网站有一个单独的管理员部分,只有具有管理员权限的用户才能访问该页面。我试过做这样的事情:
router.get('/admin', function (req, res) {
User.findOne({_id: req.user._id, admin: true}, function (err, user) {
if (err) return next(err);
res.render('admin', {user: user});
});
});
我试图让代码做的是寻找 2 个参数:用户是否登录,以及在该用户文档中他们的“管理员”是否设置为“真”。显然上面的代码不起作用,我不知道如何让它更好地工作。
编辑:我的用户架构:
var schema = mongoose.Schema;
var UserSchema = new schema ({
username: {type: String, unique: true},
email: {type: String, unique: true, lowercase: true, required: true},
password: {type: String, minlength: passMinLength, required: true},
admin: {type: Boolean, default: false},
profile: {
firstName: {type: String, default: ''},
lastName: {type: String, default: ''}
}
});
【问题讨论】:
-
你能粘贴用户架构吗?
-
感谢您的回复。我已经编辑了我的问题以包含用户架构。