Как кодировать готовую продукцию MySQL Транзакций в Express - PullRequest
0 голосов
/ 28 марта 2020

Я начал проект node.js express. И я подумываю о переводе транзакции в базу данных MySQL. Если бы у меня было 2 функции, которые содержат несколько обратных вызовов или обещаний внутри, и обе они используют одно и то же соединение. Возможно ли, что sql -исполнения могут быть окончательно перепутаны?

В конце вопрос: правильно ли я обработал запрос и транзакции?

ex. :

var connection=mysqlpool.getConnection();
function one(con) {
  con.promise().beginTransaction()
   .then(() => {
     con.promise().query("SELECT * FROM sth")
       .then(([results]) => {
         // do sth
         con.promise().query("INSERT...").
           .then(() => {con.commit();})
           .catch((err) => {console.log(err); con.rollback(); })
       })
   })
}
function two(con) {
  con.promise().beginTransaction()
   .then(() => {
     con.promise().query("SELECT * FROM sth")
       .then(([results]) => {
         // do sth
         con.promise().query("INSERT...").
           .then(() => {con.commit();})
           .catch((err) => {console.log(err); con.rollback(); })
       })
   })
}
one(connection);
two(connection);

Используется npm Пакет для подключения к DB: https://www.npmjs.com/package/mysql2

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