← Node & Express

Coding challenge

create a minimal Express server with a GET / route.

Challenge: create a minimal Express server with a GET / route.
Input: a GET request to http://localhost:3000/
Expected output: a JSON { mensaje: "Hola desde Express" } with status 200.

How to test it:
  1. npm install   (once, installs express)
  2. node 06-retos-codigo/hello-server.js
  3. In another terminal: curl http://localhost:3000/
Show solution
// Reto: crear un servidor Express minimo con una ruta GET /.
// Entrada: una peticion GET a http://localhost:3000/
// Salida esperada: un JSON { mensaje: "Hola desde Express" } con status 200.
//
// Como probarlo:
//   1. npm install   (una sola vez, instala express)
//   2. node 06-retos-codigo/hello-server.js
//   3. En otra terminal: curl http://localhost:3000/

const express = require("express");

// express() crea la aplicacion. Es el objeto central sobre el que
// registramos rutas y middleware.
const app = express();

// Leemos el puerto de una variable de entorno y damos un valor por defecto.
// Nunca hardcodeamos el puerto: en produccion lo define el entorno (process.env.PORT).
const PORT = process.env.PORT || 3000;

// Definimos una ruta GET para la raiz "/".
// El callback recibe (req, res): req es la peticion, res es la respuesta.
app.get("/", (req, res) => {
  // res.json envia una respuesta JSON y pone el header Content-Type correcto.
  // Por defecto el status es 200 (OK).
  res.json({ mensaje: "Hola desde Express" });
});

// app.listen levanta el servidor y se queda escuchando peticiones.
// El callback corre una vez cuando el servidor ya esta listo.
app.listen(PORT, () => {
  console.log(`Servidor escuchando en http://localhost:${PORT}`);
});

// Exportamos app para poder testearlo sin levantar el servidor real.
module.exports = app;