1-Web de Lista de Libros
Express es un framework minimalista y flexible para aplicaciones web Node.js que proporciona:
Un conjunto robusto de características para aplicaciones web y móviles
Mecanismos para manejar diferentes tipos de peticiones HTTP (GET, POST, etc.)
Middleware para extender su funcionalidad
Un sistema de routing sencillo pero potente
const express = require('express');
const app = express();
// Ruta básica que devuelve JSON
app.get('/', (req, res) => {
res.json({ mensaje: 'Hola Mundo', version: '1.0' });
});
// Iniciar servidor
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
Inicializar el proyecto
bash
npm init --yes
npm init -y
npm init
npm init
Express - El framework web
bash
npm install express
Morgan - Logger para desarrollo
bash
npm install morgan
npm install nodemon
npm install
npm start
Métodos para Iniciar el Proyecto
a) npm run dev (Recomendado para desarrollo)
bash
npm run dev
Cómo funciona: Ejecuta el script "dev" definido en tu package.json
Requisito: Debes tener Nodemon instalado y configurado en package.json:
json
"scripts": {
"dev": "nodemon app.js"
}
Cómo funciona: Ejecuta el script "dev" definido en tu package.json
Requisito: Debes tener Nodemon instalado y configurado en package.json:
json
}
c) npm start (Para producción)
bash
npm start
Configuración típica:
json
"scripts": {
"start": "node app.js"
}
Configuración típica:
json
¿Qué es morgan
?
morgan
es un middleware de logging para Node.js que registra información sobre las peticiones HTTP (como la URL, el método, el código de estado y el tiempo de respuesta). Es muy útil para:
Depurar errores en desarrollo.
Monitorear el tráfico en producción.
Analizar el rendimiento de tus rutas.
npm install
npm start
Métodos para Iniciar el Proyecto
a) npm run dev (Recomendado para desarrollo)
bash
npm run dev
Cómo funciona: Ejecuta el script "dev" definido en tu package.json
Requisito: Debes tener Nodemon instalado y configurado en package.json:
json
"scripts": {
"dev": "nodemon app.js"
}
Cómo funciona: Ejecuta el script "dev" definido en tu package.json
Requisito: Debes tener Nodemon instalado y configurado en package.json:
json
}
c) npm start (Para producción)
bash
npm start
Configuración típica:
json
"scripts": {
"start": "node app.js"
}
Configuración típica:
json
Explicación del Código y Estructura del Proyecto
📝 Explicación del Código
const express = require('express');
const app = express();
require('express')
: Importa el módulo Express.jsapp = express()
: Crea una instancia de la aplicación Express
app.get('/', (req, res) => {
res.json({ mensaje: 'Hola Mundo', version: '1.0' });
});
app.get('/')
: Define una ruta GET para el endpoint raíz (/
)(req, res)
: Callback que maneja la petición (request) y respuesta (response)res.json()
: Envía una respuesta en formato JSON
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});
process.env.PORT || 3000
: Usa el puerto definido en variables de entorno o el 3000 por defectoapp.listen()
: Inicia el servidor en el puerto especificado
📁 Estructura del Proyecto
mi-api-express/
├── node_modules/ # Dependencias instaladas (se crea automáticamente)
├── .gitignore # Archivo para ignorar node_modules y otros
├── package.json # Configuración del proyecto y dependencias
└── app.js # Archivo principal con el código del servidor
🛠️ Pasos para Crear el Proyecto
Crea la estructura de carpetas:
mkdir mi-api-express
cd mi-api-express
Inicializa el proyecto Node.js:
npm init -y
Instala Express:
npm install express
Crea los archivos:
touch app.js .gitignore
Configura
.gitignore
:
node_modules/
.env
Ejecuta el servidor:
node app.js
💡 Ejemplo de package.json
{
"name": "mi-api-express",
"version": "1.0.0",
"description": "API básica con Express",
"main": "app.js",
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
},
"dependencies": {
"express": "^4.18.2"
}
}
🌟 Ampliaciones Recomendadas
Instalar Nodemon para desarrollo:
npm install --save-dev nodemon
Agregar más rutas:
app.get('/api/usuario', (req, res) => {
res.json({ nombre: 'Juan', edad: 30 });
});
Manejar otras solicitudes HTTP:
app.post('/api/datos', (req, res) => {
// Lógica para POST
});
Este proyecto minimalista es perfecto para empezar con APIs RESTful en Node.js/Express.
Pasos siguientes para expandir:
Agregar Sistema de Vistas (EJS)
echo "# node-libros" >> README.md git init git add README.md git commit -m "primer commit" git branch -M main git remote add origin https://github.com/SaulSoteloSuastegui/node-libros.git git push -u origin main
-----------------------------------------------
enviar un repositorio existente desde la línea de comandos
git remoto agregar origen https://github.com/SaulSoteloSuastegui/node-libros.git git rama -M principal git push -u origen principal
1. Cambiar la URL del origin existente (recomendado) Si quieres actualizar la URL del origin (por ejemplo, porque el repositorio se movió o cambió de nombre), usa: bash git remote set-url origin https://github.com/SaulSoteloSuastegui/node-libro.git 2. Eliminar el origin actual y agregarlo de nuevo Si prefieres empezar desde cero, elimina el origin existente y luego agrega el nuevo: bash git remote remove origin git remote add origin https://github.com/SaulSoteloSuastegui/node-libro.git 3. Verificar el origin actual Para confirmar qué URL está asociada a origin, ejecuta: bash git remote -v Esto mostrará algo como: text origin https://github.com/SaulSoteloSuastegui/otro-repo.git (fetch) origin https://github.com/SaulSoteloSuastegui/otro-repo.git (push) ¿Por qué ocurre esto? Al clonar un repositorio o ejecutar previamente git remote add origin, Git guarda la configuración del remoto. Si intentas agregar otro origin, Git te avisa que ya existe para evitar conflictos. ¿Qué hacer después? Una vez actualizada la URL, puedes hacer push: bash git push -u origin main (Reemplaza main por el nombre de tu rama si es diferente). Si necesitas más ayuda, dime qué muestra git remote -v y te ayudo a verificar la configuración.
Comentarios
Publicar un comentario