Nodejs Mongo-如何与数据库中的DOM获取数据进行交互



我有一个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;
        });
    }
});

最新更新