【问题标题】:handling multiple POST requests处理多个 POST 请求
【发布时间】:2019-07-17 10:37:27
【问题描述】:

我使用 EXPRESS.JS 编写了一个服务来将我的应用程序连接到数据库,这个服务基本上是一个端点,在里面我有多个 GET 或 POST 请求。

现在我必须在同一个地址上发出两个不同的 POST 请求。

第一个 POST 请求:

app.post("/accesso", function(req, res) {
  connection.getConnection(function(err, connection) {
    let sql = "DELETE FROM accesso where ?";
    let variabile = { idaccesso: req.body.idaccesso };
    connection.query(sql, variabile, function(error, results) {
      if (error) throw error;
      res.send(results).end();
    });
    connection.release();
  });
});

第二个 POST 请求:

app.post("/accesso", function(req, res) {
  connection.getConnection(function(err, connection) {
    let sql = "INSERT INTO accesso SET ?";
    let variabile = { utente: req.body.utente };
    connection.query(sql, variabile, function(error, results) {
      if (error) throw error;
      // RISPOSTA DATABASE:
      res.send(results).end();
    });

    connection.release();
  });
});

当我测试这些请求时,我显然无法发出 post 请求,因为基本上 sql 查询和正文是不同的。

有没有办法在同一个 TABLE 上发出多个 POST 请求?

【问题讨论】:

    标签: node.js react-native express


    【解决方案1】:

    使用next() 中间件。

    next 中间件函数通常由名为 next 的变量表示。

    中间件函数可以执行以下任务:

    • 执行任何代码。
    • 更改请求和响应对象。
    • 结束请求-响应周期。
    • 调用堆栈中的下一个中间件函数。

    因此,在您的代码中,通过包含 next 参数来更改您的第一个发布请求,并在发布这样的帖子后调用它,

    app.post("/accesso", function(req, res, next) {
      connection.getConnection(function(err, connection) {
        let sql = "DELETE FROM accesso where ?";
        let variabile = { idaccesso: req.body.idaccesso };
        connection.query(sql, variabile, function(error, results) {
          if (error) throw error;
          res.send(results).end();
        });
        connection.release();
        next();
      });
    });
    

    然后按原样提交您的第二个帖子请求(不做任何更改)。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      当您的第一个请求想要从数据库中删除某些内容时,您可以定义一个具有相同路径的 app.delete 方法。

      并让第二种方法与post相同。

      app.delete("/accesso", function(req, res) {
        connection.getConnection(function(err, connection) {
          let sql = "DELETE FROM accesso where ?";
          let variabile = { idaccesso: req.body.idaccesso };
          connection.query(sql, variabile, function(error, results) {
            if (error) throw error;
            res.send(results).end();
          });
          connection.release();
        });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 1970-01-01
        • 2019-08-17
        • 1970-01-01
        相关资源
        最近更新 更多