Express

    Express.js es un framework para construir aplicaciones web y APIs con Node.js. Facilita el manejo de rutas, peticiones HTTP, middlewares y mucho más. Express.js abstrae la complejidad del módulo HTTP de Node.js y te permite enfocarte en lo importante: la lógica del sistema.

    ¿Para qué sirve? Sirve para crear servidores de manera rápida y sencilla, definiendo rutas (URLs) y sus comportamientos, así como manejando peticiones de clientes (navegadores, apps móviles, etc.).

    ¿Por qué conocer esto mejora tus habilidades como desarrollador? Express es la base de muchísimas aplicaciones web y APIs modernas. Comprenderlo te permite crear backends sólidos, comprender el ciclo de vida de una petición y dominar patrones como MVC o REST.

    ¿Cómo usarlo?

    Instalar Express en tu proyecto con npm install express

    // Servidor básico con Express
    import express from 'express';  // Importamos express
    
    const app = express();  // Creamos una instancia de express
    
    app.get('/', function (req, res) {  // Creamos una 'ruta' de ejemplo dentro del servidor
      res.send('¡Hola mundo! (pero con Express)');
    });
    
    app.listen(3000, () => {  // Iniciamos el servidor
      console.log('Servidor corriendo en http://localhost:3000');
    });
    

    El ejemplo se ve muy bonito y todo pero…

    ¿Qué son las rutas?

    Las rutas son las URLs que utilizaremos para acceder a nuestro servidor y serán nuestro punto de comunicación por el mismo. Dentro de Express, las rutas se definen mediante el uso de los métodos HTTP: GET, POST, PUT, DELETE, etc.

    • GET: Se utiliza para obtener información de un recurso. Por ejemplo, si quisieramos obtener la lista de productos, utilizaremos la ruta GET /productos, o bien si quisieramos obtener información detallada de un solo producto, utilizariamos la ruta GET /productos/:id
    • POST: Se utiliza para crear un nuevo recurso. Por ejemplo, si quisieramos crear un nuevo producto, utilizaremos la ruta POST /productos
    • PUT: Se utiliza para actualizar un recurso existente. Por ejemplo, si quisieramos actualizar un producto, utilizaremos la ruta PUT /productos/:id
    • DELETE: Se utiliza para eliminar un recurso existente. Por ejemplo, si quisieramos eliminar un producto, utilizaremos la ruta DELETE /productos/:id

    Nótese que al crear las rutas, definimos una funcion que se ejecutara cuando se llame a esa ruta. Dentro de la función el argumento req representa la solicitud HTTP y el argumento res representa la respuesta HTTP.

    En una solicitud HTTP podrían viajar datos enviados por el usuario (Ej: Desde un formulario). Mientras que en una respuesta HTTP se pueden enviar datos que seran mostrados en el navegador (Ej: Listado o Array de productos / Un mensaje de ‘Exito al cargar el producto’ / Un mensaje de error al cargar el producto).