Angular или Node.js вставляют дубликаты в Mysql при перезагрузке узла - PullRequest
0 голосов
/ 12 сентября 2018

В моем приложении пользователи вводят данные, такие как ставки или сообщения.Я заметил, что если я сделал ставку, все работает, как задумано, но если сервер узла закрыт и снова открыт, то он дублирует тот же пост в MySQL.Теперь, если я делаю несколько предложений в одном сеансе, а затем закрываю сервер узлов, он не дублирует все их, а только некоторые из них.

Я заметил, что на моей вкладке сети есть ожидающие запросы на некоторые из предложенийЯ делаю.После перезапуска сервера узла некоторые из этих ставок здесь дублируются.

Это приложение Angular 6.Мое обоснованное предположение - Angular или узел не выполняет что-то, поэтому эти ожидающие запросы после перезапуска вставляют дублированные данные.

Любая идея о том, что может быть причиной этого.Я предоставлю код просто incase

Вот угловая служба, которая вызывает API

placeBid(jobId, bidAmount: number, userId) {

const bidPayload = {
  jobId: jobId,
  userId: userId,
  bidAmount: bidAmount
};

this.http.post<{message: string}>('http://localhost:2200/api/jobs/place-bid', bidPayload).subscribe((responseData) => {
  console.log(responseData);
});

}

Вот мой код узла

 router.post("/place-bid/", checkAuth, (req, res, next) => {


pool.query(`
SELECT contractors.cont_id
FROM users
JOIN contractors on users.user_id = contractors.user_id
WHERE users.user_id = ${req.body.userId}
`, (err, results, fields) => {
let contId = results[0].cont_id;
console.log(contId);
  pool.query(`
  SELECT jobs.cust_id
  FROM jobs
  WHERE job_id = ${req.body.jobId}
  `, (custErr, custResults, custFields) => {
    console.log('cust results: ' + custResults);
    pool.query(`
    INSERT INTO bid(job_id, cont_id, cust_id, bid_amount) VALUES (${req.body.jobId},${results[0].cont_id},${custResults[0].cust_id}, ${req.body.bidAmount})
    `, (insertErr, insertResults, insertFields) => {
      console.log('Nested Results: ' + JSON.stringify(results));
    }
  )
  })


})


  });

Смущенный тем, что вызывает это, но я почесал свою голову последние несколько дней.

РЕДАКТИРОВАТЬ: Я думаю, что я сузил его до ожидающих запросов.Сейчас сценарий таков:

Сделать ставки / сообщения -> Перезагрузка сервера -> Дублированные ставки / сообщения

Я заметил, что если я:

Сделать ставки / сообщения ->Обновить страницу (удаляет отложенные запросы) -> Перезагрузка сервера -> Без дубликатов

1 Ответ

0 голосов
/ 17 сентября 2018

Я решил это!

На мои запросы не было ответа, запрос был завершен, и запросы были отложены. После добавления этих ответов ожидающие данные исчезли, и дубликатов больше нет

 res.status(200).json({
    message: 'Bid placed!'
  })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...