PostgreSQL con pool
const { Pool } = require('pg');
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
app.get('/users', async (req, res, next) => {
try {
const result = await pool.query('SELECT id, name FROM users');
res.json(result.rows);
} catch (err) {
next(err);
}
});
Transacciones
const client = await pool.connect();
try {
await client.query('BEGIN');
await client.query('UPDATE accounts SET balance = balance - 10 WHERE id = 1');
await client.query('UPDATE accounts SET balance = balance + 10 WHERE id = 2');
await client.query('COMMIT');
} catch (err) {
await client.query('ROLLBACK');
} finally {
client.release();
}
ORMs y query builders
- • Prisma
- • Sequelize
- • Knex
- • Mongoose
Buenas prácticas
- • Usa pool de conexiones
- • Sanitiza inputs para evitar inyección
- • Indexa columnas usadas en filtros
- • Separa lógica de datos en repositorios