Junior — Middle
Tem experiência no uso de transações nos seus projetos?
sobes.tech IA
Resposta da IA
Sim, em projetos de Node.js, utilizei transações, especialmente ao trabalhar com bancos de dados como PostgreSQL ou MySQL. As transações permitem agrupar várias operações numa única unidade atómica, para que ou todas as alterações sejam aplicadas ou nenhuma delas, o que é importante para manter a integridade dos dados.
Exemplo de uso de transação com a biblioteca pg para PostgreSQL:
const { Client } = require('pg');
async function performTransaction() {
const client = new Client();
await client.connect();
try {
await client.query('BEGIN');
await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
await client.query('COMMIT');
} catch (e) {
await client.query('ROLLBACK');
throw e;
} finally {
await client.end();
}
}
Assim, se uma das operações não for concluída, todas as alterações serão revertidas.