【问题标题】:Edit user info from front-end从前端编辑用户信息
【发布时间】:2018-07-08 16:30:54
【问题描述】:

我正在建立一个使用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}

在点旁边有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。基本上它只检查它是否是管理员。

我希望我把我想要实现的一切都写得很清楚。

提前谢谢你们!

【问题讨论】:

  • 您是否尝试过向服务器发出请求并触发增加分数的函数?
  • 请添加您的代码作为代码,而不是作为图像。否则我将不得不在 Paint 中回答...
  • 现在我想看看@JonasW。用 h̶a̶n̶d̶ 鼠标绘制的图像回答这个问题
  • @luca done ... 我现在终于可以看 Tatort 了 :)
  • 我已添加代码

标签: javascript node.js express server frontend


【解决方案1】:

一开始只建立一个到数据库的连接可能很有用,promise 在这里很有帮助,另外我们可以在一个实用程序中使用路由内部的数据库:

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

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

而且你必须更改在 admin 路由下呈现的 html,以便你可以轻松地使用它:

然后,您只需在后台向 API 发出请求,每当点击更新时:

【讨论】:

  • 完美! Viel Spaß beim Tatort :P
  • 返回:{"err":null, "updated":{ "lastErrorObject":{"n":0,"updatedExisting":false}, "value":null,"ok":1}} 并且没有更新
  • 问题可能出在最后一段代码上。我所做的是用该代码制作了一个单独的 JS 文件并将其导入到 jade 文件 script(src="...")
  • @ballo adam 检查username 和points 是否正确到达服务器
  • 我确实检查过,它们输入正确。它可能来自我导入的js 文件,因为我尝试检查console.log 是否完成,但它从未logs 它输出
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 1970-01-01
  • 2012-11-09
  • 2020-03-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多