Я использую 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
, но я не мог увидеть проблему здесь.
Любая помощь будет оценена.