Javascript 检查用户是否具有特定角色
因此,我在express服务器中使用mongoDb,并将用户信息存储如下:Javascript 检查用户是否具有特定角色,javascript,mongodb,mongoose,mongodb-query,Javascript,Mongodb,Mongoose,Mongodb Query,因此,我在express服务器中使用mongoDb,并将用户信息存储如下: var UserSchema=新模式({ 用户名:{type:String,必需:true,索引:{unique:true}, 密码:{type:String,必需:true}, 电子邮件:{type:String,必需:true,索引:{unique:true}}, isActive:{type:Boolean,默认值:false}, signUpDate:{type:Date,默认值:Date.now()}, 角色
var UserSchema=新模式({
用户名:{type:String,必需:true,索引:{unique:true},
密码:{type:String,必需:true},
电子邮件:{type:String,必需:true,索引:{unique:true}},
isActive:{type:Boolean,默认值:false},
signUpDate:{type:Date,默认值:Date.now()},
角色:[
{
类型:mongoose.Schema.Types.ObjectId,
参考:“角色”
}
]
});
您可以使用.aggregate()
将单个用户与其角色“连接”,然后运行$match
验证是否存在名为admin
的角色。如果特定用户没有此角色,则聚合将返回空数组:
User.aggregate([
{ $match: { _id: req.SecureUserId } },
{
$lookup: {
from: "roles",
localField: "roles",
foreignField: "_id",
as: "roles"
}
},
{ $match: { "roles.name": "admin" } }
]).exec((err, user) => {
if(user.length === 1){
next();
}
})
如果secureuserid是字符串,请确保首先将其包装在mongoose对象id中!被困在那里有一点