使用nodeJS express和EJS发布mySQL值返回

时间:2018-08-21 22:25:34

标签: mysql node.js express ejs

我有一个像这样的mysql表

  id  photo_name  mob_no Status      url
   4   one          3434  OK          http://foofo
   5   two          434   Rejected    http://barbar
   6   three         434   Pending     http://bazbaz

我正在使用ejs文件打印其值,但是我想展示3个按钮,这些按钮可以将状态更改为:批准,拒绝或待处理 可以说它将返回查询:

        UPDATE `scans` SET `status` = 'OK' WHERE `id` = 6

不幸的是,我无法找到一种方法来使用post方法并仅通过叮当一个按钮来返回这些值。 iv'e尝试将表单与post方法一起使用,但没有成功,我也没有  要用文本填写表格,只需按一个基本上返回字符串的按钮即可。

我正在像这样打印表格:

      app.get('/home/xray', user.xray)
  exports.xray = function(req, res){
  db.query('SELECT * FROM scans', function (err, result) {
        if (err) {
            throw err;
        } else {

            res.render('xray.ejs', {result});
        }
    });
    };

1 个答案:

答案 0 :(得分:1)

您可以通过查询字符串将两个参数发送到同一路径。请按照以下步骤操作:

NodeJS路线:

app.get('/home/xray', user.xray)
  exports.xray = function(req, res){
  if(req.query.id && req.query.status) {
    // UPDATE QUERY WHERE ID = req.query.id and STATUS = req.query.status
  }
  db.query('SELECT * FROM scans', function (err, result) {
    if (err) {
      throw err;
    } else {
      res.render('xray.ejs', {result});
    }
  });
};

模板EJS:

<a href="?id={{currentPhotoId}}&status=OK">Status Ok</a>
<a href="?id={{currentPhotoId}}&status=Rejected">Status Rejected</a>
<a href="?id={{currentPhotoId}}&status=Pending">Status Pending</a>

为确保并提高安全性,您可以检查通过查询字符串传递的status,但这应该可行。