【发布时间】:2019-09-18 15:16:25
【问题描述】:
在最后一个比较块中,我比较的是 user.rol_id 是否不等于角色的 id,奇怪的是根据逻辑它应该是相反的,所以,我感谢任何解释在那个比较中正在发生。
export function verifyRol(rol: string){
return async (req: Request, res: Response, next: NextFunction) => {
const id = res.locals.jwtPayload.id;
let user, rolModel;
try {
user = await User.findById(id);
if (!user) return res.status(404).json({message: 'No se encuentra el usuario'});
rolModel = await Rol.findOne({type_user: 1, name: rol});
if (!rolModel) return res.status(404).json({message: 'No se encuentra el rol'});
if (user.rol_id !== rolModel._id) {
console.log(':O');
next();
}else {
return res.status(401).json({message: 'No se encuentra autorizado'});
}
} catch (error) {
return res.status(401).json({message: 'No se encuentra autorizado'});
}
}
}
我将 TypeScript 与 NodeJS 和 MongoDB 一起使用
【问题讨论】:
-
当两个 id 值匹配或不匹配时应该发生什么?
-
请不要只是发布和消失。您获得帮助的最佳机会来自第一批参与的人,如果您不在身边,人们会继续做其他事情,而其他人则认为缺乏参与。
标签: node.js mongodb typescript mongoose middleware