从前端编辑用户信息

时间:2018-07-08 16:30:54

标签: javascript node.js express server frontend

我正在建立一个使用mongodb的具有注册/登录系统的网站。 我已经成功创建了一个admin页面,该页面只能由管理员(if permission > 0)访问。 在admin page上显示所有用户,并显示用户名,电子邮件,电话号码和points。我正在尝试做的是能够使用网页中的管理员帐户来incease个用户积分。这是使用jade js来显示用户的方式及其在页面上的外观:

ul each user, i in userlist li#user_list_item label Username:   span #{user.username}   label Email:   span #{user.email}   label Points:   span #{user.points}   button.btn.btn-primary() +pts   label Telefon:   span #{user.phoneNo}   label Permissions:   span #{user.permissions}

enter image description here

在点旁边是button,名称为+pts。当按下该按钮时,我想增加该按钮所在的用户的分数。假设我点击了第一个用户名admin上的按钮,因此积分将增加1,因此新积分为1005。标签仅用于更改CSS中的颜色。如何使用可用于每个按钮的一个功能来实现此目的? 这是我在管理页面上使用的get request

router.get('/admin', isAdmin, function(req, res) {
  const MongoClient = mongodb.MongoClient;
  const url = 'mongodb://localhost:27017/gymsite';

  MongoClient.connect(url, function(err, db) {
      if (err) {
          res.send({
              msg: "Failed to connect to db"
          });
      } else {
          const users = db.collection('users');

          users.find({}).toArray(function(err, result) {
              if (err) {
                  res.send(err);
              } else if (result.length) {
                  res.render('admin', {
                      'userlist': result
                  });
              } else {
                  res.send({
                      msg: 'No users found'
                  });
              }
              db.close();
          });
      }
  });

});

isAdmin是用于检查用户isAutheinticated是否以及该用户的permissions是否为greater than 0的功能。基本上,它只会检查其是否为管理员。

我希望我能清楚地写出我想要达到的目标。

谢谢大家!

1 个答案:

答案 0 :(得分:2)

起初,仅建立与数据库的一个连接可能很有用,promise在这里很有帮助,此外,我们可以在实用程序中使用路由内的数据库:

enter image description here

现在我们知道了,管理页面可以简化为:

enter image description here

现在要将设置应用于用户,我们需要一个API端点:

enter image description here

并且您必须在管理路径下更改呈现的html,以便可以轻松地使用它:

enter image description here

然后,只要单击更新,您就只需在后台向API发出请求:

enter image description here