Транзакция Knex не работает из-за невозможности чтения свойства then из неопределенной ошибки - PullRequest
0 голосов
/ 28 января 2019

Я использую Knex js на Node Express для выполнения транзакции.Транзакция включает в себя вставку в две таблицы.В целях тестирования я жестко закодировал имена столбцов и их значения.

db('table_1').where('id', 1) 
    .then(data => {
      if (data.length === 0) {
        db.transaction(trx => {
          db.raw(`insert into table_1 (id, f_name) values ('1', 'hello');`).transacting(trx)   
              console.log('works 1')

              .then(data => {

                return db.raw(`insert into table_2 (id, l_name) values ('1', 'kitty');`).transacting(trx)    
                  .then(data => {
                  console.log(data[0])
                })
            })
            .then(trx.commit)
            .catch(trx.rollback);
        })
          .then(() => res.sendStatus(200))
          .catch(err => console.log(err));
      }
    })

Эта первая вставка работает, потому что работает console.log, но затем я получил ошибку Cannot read property 'then' of undefined.Я прочитал, что эта ошибка возникает, когда отсутствует then, но я не мог увидеть проблему здесь.

Любая помощь будет оценена.

...