4-Servidores HTTP
Curso Express: Creación de Servidores HTTP con Node.js y Express
tu-proyecto/
├── app.js # (Tu código actual)
├
└── package.json # (Con dependencias `express` y `ejs`)
Introducción a HTTP y Node.js
1. ¿Qué es HTTP? 🌐
HTTP (Protocolo de Transferencia de Hipertexto) es el lenguaje que usan los navegadores y servidores para comunicarse. Cuando visitas una página web:
Tu navegador (cliente) envía una solicitud (request)
El servidor procesa esta solicitud y envía una respuesta (response)
Esta respuesta puede ser HTML, CSS, imágenes, datos JSON, etc.
// Ejemplo de flujo HTTP
Cliente: "GET /index.html" ➡️
Servidor: "200 OK <html>...</html>" ⬅️
2. Módulo HTTP de Node.js ⚙️
Node.js incluye un módulo nativo http
para crear servidores:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hola Mundo desde Node.js!');
});
server.listen(3000, () => {
console.log('Servidor corriendo en http://localhost:3000');
});
3. Verbos HTTP principales 🔌
Método | Descripción | Uso típico |
---|---|---|
GET | Obtener datos | Cargar páginas web |
POST | Enviar datos | Formularios, APIs |
PUT | Actualizar datos | Modificar recursos |
DELETE | Eliminar datos | Borrar información |
🛠️ Configurando Express - El framework esencial
4. Instalación y configuración básica
npm init -y
npm install express
Archivo básico (app.js):
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('¡Bienvenido a mi servidor Express!');
});
app.listen(PORT, () => {
console.log(`Servidor Express corriendo en http://localhost:${PORT}`);
});
5. Ventajas clave de Express 💎
Enrutamiento simplificado: Manejo fácil de diferentes rutas
Middleware: Funciones intermedias para procesar requests
Manejo de errores: Más fácil que con HTTP puro
Comunidad activa: Miles de módulos disponibles (npm)
6. Middleware - El corazón de Express ❤️
Los middleware son funciones que procesan las solicitudes:
// Middleware para loggear todas las peticiones
app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
next(); // Pasa al siguiente middleware
});
// Middleware para servir archivos estáticos
app.use(express.static('public'));
7. Manejo de rutas avanzado 🗺️
// Ruta básica
app.get('/about', (req, res) => {
res.send('<h1>Acerca de nosotros</h1>');
});
// Ruta con parámetros
app.get('/users/:userId', (req, res) => {
res.send(`Mostrando usuario ${req.params.userId}`);
});
// Manejo de formularios POST
app.post('/login', express.urlencoded(), (req, res) => {
const { username, password } = req.body;
// Validar credenciales...
});
🚦 Flujo de trabajo profesional
8. Nodemon - Recarga automática 🔄
Instalación:
npm install --save-dev nodemon
Uso (en package.json):
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
Ejecutar en desarrollo:
npm run dev
9. Estructura recomendada de proyecto 📁
mi-proyecto/
├── node_modules/
├── public/
│ ├── css/
│ ├── js/
│ └── images/
├── routes/
│ ├── api.js
│ └── web.js
├── views/
├── app.js
├── package.json
└── .gitignore
📌 Próximos pasos recomendados
Express Generator: Crea estructuras de proyecto automáticamente
npx express-generator
Routers: Separa tus rutas en módulos
Plantillas: EJS, Pug o Handlebars para vistas dinámicas
Conexión a bases de datos: MongoDB (Mongoose) o SQL (Sequelize)
Conclusión
Express simplifica enormemente la creación de servidores web en Node.js, permitiéndote:
✅ Manejar rutas complejas fácilmente
✅ Procesar diferentes tipos de solicitudes
✅ Implementar lógica de middleware
✅ Escalar tu aplicación de manera organizada
¿Listo para profundizar? ¡El siguiente paso sería aprender sobre autenticación de usuarios y conexión a bases de datos! 🎯
Comentarios
Publicar un comentario