我使用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请求?
答案 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();
});
});