Как мне остановить router.post в экспрессе от уничтожения предыдущего вызова по тому же маршруту? - PullRequest
0 голосов
/ 21 марта 2019

Моя среда - это угловой интерфейс с бэкэндом Express / Nodejs.

Пример моей проблемы - пользователь нажимает кнопку на веб-странице, которая запускает длительный процесс SQL. Это связано с БД с помощью службы Angular, которая отправляет HTTP-запрос по маршруту. Этот маршрут попадает в пост на стороне Express, который выполняет операторы SQL. Если другой пользователь на сайте попадет по тому же маршруту, он убьет запрос пользователя 1с. Как мне это остановить?

Пример ниже:

Сервис в угловых

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;
    })
  );
}

Файл Routes / Index.js в формате Angular

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 голосов
/ 22 марта 2019

Разные вызовы на экспресс не должны прерывать себя, так как ваш маршрут должен быть без состояния.

Посмотрите на вашего поставщика драйверов базы данных и проверьте примеры использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...