Vamos a crear una versión solo API (sin vistas EJS, solo respuestas JSON) manteniendo la misma estructura de productos. Usaremos express.Router() también para organizar las rutas API. Así de sencillo como el ejemplo original pero eliminando todo lo relacionado con EJS y archivos estáticos.
Entregaré:
Estructura de proyecto simplificada.
Código de app.js (servidor solo API).
Router routes/api.js con endpoints JSON.
Instrucciones de prueba.
No incluiré vistas, ni CSS, ni Bootstrap, ni archivos estáticos.
Perfecto. Aquí tienes una versión solo API (sin vistas, sin estáticos, solo JSON) igual de sencilla que tu ejemplo original, pero organizada con express.Router().
const express =require('express');const router = express.Router();// Datos de ejemplo (simulan BD)const productos =[{id:1,nombre:'Laptop',precio:1000},{id:2,nombre:'Mouse',precio:25},{id:3,nombre:'Teclado',precio:50}];// GET /api/productos → devuelve todos los productos
router.get('/productos',(req, res)=>{
res.json({success:true,cantidad: productos.length,productos: productos
});});// GET /api/productos/:id → devuelve un producto por ID
router.get('/productos/:id',(req, res)=>{const id =parseInt(req.params.id);const producto = productos.find(p=> p.id === id);if(!producto){return res.status(404).json({error:'Producto no encontrado'});}
res.json(producto);});
module.exports = router;
2. app.js – Servidor principal (solo API)
javascript
const express =require('express');const app =express();constPORT=3000;// Importar el router de APIconst apiRouter =require('./routes/api');// Montar el router bajo el prefijo /api
app.use('/api', apiRouter);// Ruta de bienvenida opcional
app.get('/',(req, res)=>{
res.json({mensaje:'API de productos funcionando',endpoints:['/api/productos','/api/productos/:id']});});// Iniciar servidor
app.listen(PORT,()=>{
console.log(`🚀 API corriendo en http://localhost:${PORT}`);
console.log(`📦 Listar productos: http://localhost:${PORT}/api/productos`);
console.log(`🔍 Un producto: http://localhost:${PORT}/api/productos/1`);});
3. package.json (mínimo)
json
{"name":"mi-proyecto-api","version":"1.0.0","description":"API simple con Express y Router","main":"app.js","scripts":{"start":"node app.js"},"dependencies":{"express":"^4.18.2"}}
🧪 ¿Cómo probar?
Instala Express:
bash
npm init -ynpminstall express
Crea la carpeta routes y dentro el archivo api.js con el código de arriba.
Crea app.js tal como se muestra.
Ejecuta:
bash
node app.js
Prueba los endpoints con el navegador o con curl:
http://localhost:3000/ → mensaje de bienvenida
http://localhost:3000/api/productos → lista completa JSON
http://localhost:3000/api/productos/2 → producto con id=2
http://localhost:3000/api/productos/99 → error 404 con JSON
✅ Características de esta versión solo API
Sin vistas EJS, sin CSS, sin Bootstrap.
Todo es JSON.
Usa express.Router() para organizar rutas.
Respuestas limpias con códigos HTTP adecuados (200, 404).
Fácil de extender: puedes agregar POST, PUT, DELETE en el mismo router.
¿Necesitas que añada algún otro endpoint (por ejemplo, POST para crear producto)? Con gusto lo agrego.
Cómo Iniciar un Proyecto Node.js desde Cero: Guía Paso a Paso Solución 1: Cambiar la política de ejecución (recomendado) Abre PowerShell como administrador . Ejecuta este comando para permitir la ejecución de scripts firmados: powershell Copy Download Set-ExecutionPolicy RemoteSigned - Scope CurrentUser Si estás comenzando con Node.js, esta guía te mostrará cómo configurar un proyecto básico con las herramientas esenciales. Paso 1: Inicializar el proyecto bash Copy Download npm init --yes Este comando crea automáticamente un archivo package.json con valores predeterminados. El package.json es el corazón de tu proyecto Node.js, donde se almacenan: Dependencias del proyecto Scripts personalizados Metadatos del proyecto (nombre, versión, descripción, etc.) Paso 2: Instalar dependencias esenciales Express - El framework web bash Copy Download npm install express Express es el framework web más popular para Node.js. Te permite: Crear rutas (endpoints)...
¿Qué es un Motor de Plantillas? 5- EXPRESS | V 6- MIDDLEWARE | V 7- express.static | V 8-Motor de plantilla tu-proyecto/ ├── public/ # Carpeta para archivos estáticos │ ├── css/ │ │ └── styles.css │ ├── js/ │ │ └── script.js │ └── images/ │ └── logo.png ├── index.ejs # Plantilla EJS (en raíz) ├── app.js # Servidor Express └── package.json # Dependencias Un motor de plantillas es una herramienta que permite generar contenido HTML (u otros formatos) de manera dinámica, insertando datos en estructuras predefinidas. Esto facilita: pp . set ( 'view engine' , 'ejs' ) ; app . set ( 'views' , './templates' ) ; res . render ( 'index' ) ; // Buscará /home/usuario/proyecto/index.ejs Parámetros: Primer p...
Comentarios
Publicar un comentario