Tema
Snippets Node.js
Piezas listas para construir APIs con Node.js + Express en proyectos reales: estructura de carpetas, conexión a MySQL y PostgreSQL, autenticación con JWT, manejo de errores, subida de archivos, correos, seguridad, paginación y validación.
Todos los ejemplos usan módulos ES (import/export), Node 20 o superior y async/await. Están pensados para encajar entre sí: el servidor base define la estructura y los demás snippets añaden archivos dentro de ella.
Estructura común
txt
mi-api/
├── .env
├── package.json ← "type": "module"
└── src/
├── server.js ← arranca el servidor
├── app.js ← configura Express
├── config/env.js ← variables de entorno validadas
├── db/ ← conexión MySQL o PostgreSQL
├── routes/ ← rutas por recurso
├── controllers/ ← lógica de cada ruta
├── middlewares/ ← auth, errores, validación, subida
└── utils/ ← correo, helpersTemario
- Servidor Express base — estructura profesional, dotenv y arranque.
- CRUD con MySQL — pool de
mysql2/promisey consultas preparadas. - CRUD con PostgreSQL —
pgPool yRETURNING. - Autenticación JWT — registro, login, access + refresh token.
- Middleware de errores —
AppError,asyncHandlery 404. - Subida de archivos con multer — límites, filtros y nombres seguros.
- Correos con nodemailer — SMTP y plantillas HTML.
- Helmet, CORS y rate limit — cabeceras seguras y límites de peticiones.
- Paginación — offset, cursor y metadatos.
- Validación con zod — esquemas y middleware reutilizable.
Arranque rápido
bash
mkdir mi-api && cd mi-api
npm init -y
npm pkg set type=module
npm install express dotenv
npm install -D nodemonRequisito previo: el curso de Node.js.