处理多个POST请求

时间:2019-07-17 10:37:27

标签: node.js react-native express

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

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

第一个POST请求:

services.AddDbContext<CatalogContext>(options =>
        {
            options.UseSqlServer(Configuration["ConnectionString"],
            sqlServerOptionsAction: sqlOptions =>
            {
                sqlOptions.EnableRetryOnFailure(
                maxRetryCount: 10,
                maxRetryDelay: TimeSpan.FromSeconds(30),
                errorNumbersToAdd: null);
            });
        });

第二个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();
  });
});

当我测试那些请求时,我显然无法发出发布请求,因为基本上sql查询和主体是不同的。

是否可以在同一张表上发出多个POST请求?

2 个答案:

答案 0 :(得分:0)

使用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();
  });
});

然后按原样放置第二个帖子请求(无任何更改)。

希望这会有所帮助!

答案 1 :(得分:0)

当您的第一个请求要从数据库中删除某些内容时,可以定义一个具有相同路径的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();
  });
});