DEV Community

Giovanne Barbosa
Giovanne Barbosa

Posted on

 

Usando transaction no knex

Transação é uma forma segura de garantir que se algo der errado no meio do processo de alteração do banco de dados, essas alterações não serão salvas. Por exemplo, quando estamos fazendo alterações que mexem em duas tabelas. Se a alteração da segunda tabela der errado, a da primeira também não será salva.

Para usar transaction no knex, é muito simples:

Primeiro, crie uma variável e inicie a transação:

const trx = await knex.transaction();
Enter fullscreen mode Exit fullscreen mode

Depois faça as tratativas do seu banco de dados normalmente, com uma diferença: Ao invés de usar 'knex' para fazer suas alterações, use a variável de transação criada:

await trx('tabela').insert(dados)
Enter fullscreen mode Exit fullscreen mode

E ao final de tudo é só commitar:

trx.commit()
Enter fullscreen mode Exit fullscreen mode

Oldest comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.