Lección 7 de 12 · Lectura y práctica
Conectar a Postgres y hacer queries seguras
Postgres en APIs Conectar a DB es facil. Hacerlo seguro y estable es el trabajo. Aprende buenas practicas basicas. Conceptos clave Pool de conexiones Queries parametrizadas Timeouts y retries (idea) Ejemplo Regla: nunca.
Del concepto a la práctica
Taller de esta lección
Una consulta parametrizada mantiene separados el código SQL y los valores recibidos. El pool reutiliza conexiones, pero cada operación debe liberar recursos mediante la interfaz de la biblioteca elegida; no concatena identificadores ni texto del usuario.
Ejemplo resuelto
const result = await pool.query(
'SELECT id, title FROM courses WHERE id = $1',
[req.params.id]
);Para id = 7, Postgres recibe la consulta y el valor como elementos distintos. Una entrada como 7 OR 1=1 no se convierte en SQL ejecutable por concatenación.
Fixture reproducible: (id7,Node,basic), (id8,SQL,advanced), (id9,HTML,basic). La consulta SELECT id,title FROM courses WHERE level=$1 ORDER BY id con ["basic"] devuelve7 y9. En una tabla id entero, 7 OR1=1 es un valor inválido y se rechaza antes de consultar; parametrizar evita inyección, sin convertirlo en un ID válido. pool.query libera su conexión automáticamente; con pool.connect usa client.release() en finally. Una transacción requiere el mismo client para BEGIN/COMMIT/ROLLBACK.
Pruébalo
Define una tabla local con tres cursos identificados.
Ejecuta el
SELECTcon un parámetro numérico.Prueba un valor inválido y registra la respuesta de validación antes de consultar.
Error frecuente: usar ... WHERE id = ${id}. Corrige con $1 y un array de parámetros, además de validar el tipo esperado.
Ejercicio: consulta los cursos cuyo nivel sea basic usando $1.
Comprueba tu resultado
solo aparecen los registros con ese nivel; entrega los tres registros iniciales y la salida para comprobar el filtro.

Mapa de prácticaEl navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.
Ver la infografía en tamaño completo ↗Postgres en APIs
Conectar a DB es facil. Hacerlo seguro y estable es el trabajo. Aprende buenas practicas basicas.
Conceptos clave
- Pool de conexiones
- Queries parametrizadas
- Timeouts y retries (idea)
Ejemplo
Regla: nunca concatenes strings para queries. Usa parametros.
Ejercicio
- Implementa un SELECT parametrizado por id.
- Define un timeout por request.
Checklist de mastery
- Evito SQL injection.
- Entiendo pool vs conexion unica.
Sigue con Node.js y APIs con Express
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.