Knex交易中的多项操作

Multiple operations in Knex transaction

我要在一个函数中对数据库执行五 (5) 项操作。我想将它们放入事务中,但我发现将每个都放入前一个操作的回调中有点奇怪。我怎样才能以优雅和可读的方式做到这一点?

Knex 具有内置的事务支持,如下所示:

await knex.transaction(async trx => {
    await knex('users')
      .insert({id: 1, username: 'foo'})
      .transacting(trx);

    await knex('members')
      .insert({userId: 1})
      .transacting(trx);
  });

稍微简单一点的版本。 .transacting() 实际上几乎不需要,因为您可以使用 trx 而不是 knex.

构建应该直接转到同一事务的查询
await knex.transaction(async trx => {
    await trx('users').insert({id: 1, username: 'foo'});
    await trx('members').insert({userId: 1});
});