如何停止Express中的router.post杀死以前对同一路由的呼叫?

时间:2019-03-21 18:34:35

标签: node.js angular express

我的环境是带有Express / Nodejs后端的Angular前端。

我的问题的一个示例是用户单击网页上的一个按钮,该按钮启动了长时间运行的SQL进程。它使用Angular服务连接到DB,该服务针对路由发出HTTP请求。该路由在Express端命中了一个执行SQL语句的帖子。如果站点上的另一个用户点击相同的路由,将杀死用户1s的查询。如何停止呢?

以下示例:

Angular服务

getBBB(id): Observable<[BBBResult]> {
  const url = 'http://localhost:4200/'+'job_bbb';
  const data = ({
    id: id,
  });
  return this._http.post(url, data)
  .pipe(
    map((res) => {
      console.log(res);
      return <[BBBResult]> res;
    })
  );
}

Angular中的Routes / Index.js文件

router.post('/job_bbb', function (req, res) {
  var id = req.body.id;
  var sql = " CALL PROCEDURE DB.PROC(" + id + ");"
  return database.read(sql)
    .then((x) => {
      console.log(x)
      res.send(x);
    })
});

1 个答案:

答案 0 :(得分:0)

表达差异的不同呼叫不应打扰自己,因为您的路由必须是无状态的。

看一下您的数据库驱动程序提供商,并检查使用示例。