【发布时间】:2020-08-28 07:40:29
【问题描述】:
基于 Knex 承诺的事务可以像常规 knex 客户端一样使用。
const db = knex.transaction() //or just const db = require('knex')(knexOptions)
db('books').insert(books); // it works in both case
我需要接受 knex 对象作为我函数的参数并在其中执行事务。如果 knex 对象或 knex 事务作为参数传递,我能以某种方式区分吗?如果这不是一个事务,我想用 knex.transaction 包装客户端对象。
我可以使用类似db.isTransaction 的语法吗?
function myFunc(db) {
if (!db.isTransaction)
{
db=knex.transaction()
}
db('books').insert(books);
}
【问题讨论】: