我有一个Little Express EJS应用程序,可保存注册用户的数据。
每个用户都有一个"角色",保存在DB中。
每个用户都有HTML DIV,我希望每个DIV的颜色都取决于用户的角色。
基本上,我需要使用开关/案例功能向每个DIV添加特定类。
我试图了解如何最好的方法之间的nodejs mongo dom之间的交互,但我没有线索。
- 在DB中保存的角色不能等于他合适的班级的名称。
感谢您的帮助!
创建一个名为 getColorByRole.js
的辅助函数,例如:
module.exports =(role)=>{
let colorClass;
switch(role){
case 'user':
colorClass='bg-primary';
break;
case 'manager':
colorClass='bg-warning';
break;
case 'admin':
colorClass='bg-success';
break;
default:
colorClass='bg-light';
break;
}
return colorClass;
}
现在,当用户请求时,调用此助手功能,发送
let getColorByRole=require('./helpers/getColorByRole.js');
app.get('/dashboard',(req,res)=>{
let colorClass=getColorByRole(req.user.role);
res.render('/dashboard',{data:someyourdata,colorClass:colorClass});
});
现在在前端侧,只需使用EJS变量向DIV添加几级,
<div class="<%=colorClass%>" style="width:100%;">
Dashboard
</div>
更新:如果您要获取多个用户,并且想根据用户角色显示不同的颜色,则可以这样做:
User.find({},(err,users)=>{
if(!err && users){
users.map((user)=>{
user.colorClass=getColorByRole(user.role);
return user;
});
}
});