Необязательный оператор INSERT в цепочке транзакций с использованием NodeJS и Postgres

Я создаю простое веб-приложение, используяNodeJS / Postgres что нужно сделать 3 вставки в базу данных.

Для контроля цепочки утверждений я используюпг-транзакций.

Моя проблема в том, что я всегда должен запускать 2 первых ВСТАВКИ, но у меня есть условие для запуска 3-го.

Может быть, мой код может быть построен лучше (предложения приветствуются).

Вот псевдокод:

function(req, res) {
  var tx = new Transaction(client);
  tx.on('error', die);
  tx.begin();
  
  tx.query('INSERT_1 VALUES(...) RETURNING id', paramValues, function(err, result) {
    if (err) {
      tx.rollback();
      res.send("Something was wrong!");
      return;
    }
    
    var paramValues2 = result.rows[0].id;
    tx.query('INSERT_2 VALUES(...)', paramValues2, function(err2, result2) {
      if (err) {
        tx.rollback();
        res.send("Something was wrong!");
        return;
      }
      
      // HERE'S THE PROBLEM (I don't want to run it always this last statement)
      // If I don't run it, I will miss tx.commit()
      if (req.body.value != null) {
        tx.query('INSERT_3 VALUES(...)', paramValues3, function(err3, result3) {
          if (err) {
            tx.rollback();
            res.send("Something was wrong!");
            return;
          }
        
          tx.commit();
          res.send("Everything fine!");
        });
      }
    });
  });
}

Кажется уродливым повторять три раза одно и то жеif (err) {} после каждого запроса.

Пытаясь проверить некоторые варианты, которые я нашелSequelize, но не смог найти способ решить эту проблему с ним.

Любые предложения приветствуются!

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос