Entradas

5-3-API -web-router

  Vamos a integrar express.Router() en tu ejemplo completo (web + API) manteniendo exactamente la misma funcionalidad, sin CSS adicional y de forma sencilla. La estructura será: text mi-app/ ├── app.js ├── routes/ │ ├── webRoutes.js │ └── apiRoutes.js ├── models/ │ └── productoModel.js └── package.json Paso 1: Crear el modelo ( models/productoModel.js ) Centralizamos el arreglo de productos y las operaciones básicas. javascript // models/productoModel.js let productos = [ { id : 1 , nombre : 'Laptop' , precio : 1000 } , { id : 2 , nombre : 'Mouse' , precio : 25 } , { id : 3 , nombre : 'Teclado' , precio : 50 } ] ; const getAll = ( ) => productos ; const getById = ( id ) => productos . find ( p => p . id === id ) ; const create = ( nombre , precio ) => { const nuevoId = productos . length > 0 ? Math . max ( ... productos . map ( p => p . id ) ) + 1 : 1 ; const nu...

5-MVC-API

  MVC sin Router y sin Views separadas (el HTML va directamente en el controlador web, sin EJS). La estructura es simple y mantiene la separación de responsabilidades. 📁 Estructura del proyecto text mvc-simple/ ├── app.js ├── models/ │ └── productoModel.js └── controllers/ ├── webController.js └── apiController.js (No hay carpetas views ni routes ) 1. Modelo ( models/productoModel.js ) javascript // Base de datos en memoria let productos = [ { id : 1 , nombre : 'Laptop' , precio : 1000 } , { id : 2 , nombre : 'Mouse' , precio : 25 } , { id : 3 , nombre : 'Teclado' , precio : 50 } ] ; // Obtener todos const getAll = ( ) => productos ; // Obtener por ID const getById = ( id ) => productos . find ( p => p . id === id ) ; // Crear nuevo producto (devuelve el producto creado) const create = ( nombre , precio ) => { const nuevoId = productos . length > 0 ? Math . max ( .....