Tutorial del framework Node.js Express.js

โšก Resumen inteligente

Express.js es un framework minimalista para aplicaciones web Node.js que aรฑade enrutamiento, middleware y renderizado de plantillas al mรณdulo HTTP principal, de modo que las aplicaciones de una sola pรกgina, de varias pรกginas e hรญbridas llegan a un servidor funcional con muy pocas lรญneas de cรณdigo.

  • ๐Ÿ”˜ Funciรณn en la pila MEAN: Express.js proporciona la capa de backend ademรกs MongoDB, AngularJS y Node.js.
  • โ˜‘๏ธ Instalaciรณn: El comando npm install express descarga el framework desde el gestor de paquetes de Node.
  • โœ… Enrutamiento: app.METHOD(RUTA, MANEJADOR) asigna cada URL y el verbo HTTP a un manejador.
  • ๐Ÿงช Plantillas: app.set('view engine') mรกs res.render introduce datos en un archivo de vista.
  • ๐Ÿ› ๏ธ Forma moderna: Express 5 acepta manejadores que devuelven promesas y empaqueta express.json().
  • ๐Ÿ“Š Nota de versiรณn: Jade pasรณ a llamarse Pug, y Node.js 24 es la versiรณn LTS activa.

Tutorial del framework Node.js Express.js

En este tutorial, estudiaremos el framework Express. Este framework estรก diseรฑado para funcionar como un framework de aplicaciones web Node.js minimalista y flexible, que proporciona un conjunto robusto de caracterรญsticas para crear aplicaciones web de una sola pรกgina, de varias pรกginas e hรญbridas.

ยฟQuรฉ es Express.js?

Express.js es un framework de servidor de aplicaciones web para Node.js, diseรฑado especรญficamente para la creaciรณn de aplicaciones web de una sola pรกgina, de varias pรกginas e hรญbridas.

Se ha convertido en el framework de servidor estรกndar para Node.js. Express es la parte de backend de lo que se conoce como la pila MEAN.

Express aplica capas de enrutamiento y middleware sobre el nรบcleo HTTP de Node.js, corrientes y API de eventos.

MEAN es gratuito y de cรณdigo abierto. JavaScript pila de software para crear sitios web dinรกmicos y aplicaciones web que tiene los siguientes componentes:

1) MongoDB โ€” La base de datos NoSQL estรกndar

2) Expreso.js โ€” El marco de trabajo predeterminado para aplicaciones web

3) AngularJS - Los JavaMarco de trabajo MVC de scripts utilizado para aplicaciones web

4) Node.js โ€” Marco de trabajo utilizado para aplicaciones de red y del lado del servidor escalables.

El marco Express.js facilita el desarrollo de una aplicaciรณn que se puede utilizar para manejar mรบltiples tipos de solicitudes, como solicitudes GET, PUT, POST y DELETE.

Instalaciรณn y uso de Express

Express se instala a travรฉs del administrador de paquetes de Node. Esto se puede hacer ejecutando la siguiente lรญnea en la lรญnea de comandos

npm instalar express

El comando anterior solicita al Administrador de paquetes de Node que descargue el express necesario. mรณdulos e instalarlos segรบn corresponda.

Nota de versiรณn: npm ahora instala Express 5.2; muchos proyectos todavรญa usan Express 4. Ambos ejecutan los ejemplos a continuaciรณn en un Versiรณn compatible con Node.js.

Usemos nuestro marco Express reciรฉn instalado y creemos una aplicaciรณn simple "Hola mundo".

Nuestra aplicaciรณn va a crear un sencillo mรณdulo de servidor que estarรก a la escucha en el puerto nรบmero 3000. En nuestro ejemplo, si se realiza una solicitud a travรฉs del navegador en este puerto, la aplicaciรณn del servidor enviarรก una respuesta "Hola Mundo" al cliente.

Cรณdigo de servidor Express Hello World anotado que escucha en el puerto 3000

var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});

Code Explicaciรณn:

  1. En nuestra primera lรญnea de cรณdigo, utilizamos la funciรณn require para incluir el "mรณdulo expreso".
  2. Antes de que podamos comenzar a usar el mรณdulo express, necesitamos convertirlo en un objeto.
  3. Aquรญ estamos creando una funciรณn de devoluciรณn de llamada. Esta funciรณn se ejecutarรก cada vez que alguien acceda a la raรญz de nuestra aplicaciรณn web, que es http://localhost:3000. La funciรณn de devoluciรณn de llamada se utilizarรก para enviar la cadena "Hola Mundo" a la pรกgina web.
  4. En la funciรณn de devoluciรณn de llamada, enviamos la cadena "Hola mundo" al cliente. El parรกmetro 'res' se utiliza para enviar contenido a la pรกgina web. Este parรกmetro 'res' es algo que proporciona el mรณdulo 'solicitud' para permitir enviar contenido a la pรกgina web.
  5. Luego usamos la funciรณn listen para que nuestra aplicaciรณn de servidor escuche las solicitudes de los clientes en el puerto 3000. Aquรญ puede especificar cualquier puerto disponible.

Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute su cรณdigo en el navegador.

Salida:

El navegador muestra "Hello World" devuelto por el servidor Express en el puerto 3000.

Desde la salida,

  • Puedes ver claramente que si navegas a la URL Si accedes a localhost en el puerto 3000, verรกs la cadena "Hello World" mostrada en la pรกgina.
  • Debido a que en nuestro cรณdigo hemos mencionado especรญficamente que el servidor escuche en el puerto 3000, podemos ver la salida cuando navegamos a este URL.

ยฟQuรฉ son las Rutas?

Una รบnica ruta raรญz es solo el punto de partida.

El enrutamiento determina la forma en que una aplicaciรณn responde a la solicitud de un cliente a un punto final especรญfico.

Por ejemplo, un cliente puede realizar una solicitud HTTP GET, POST, PUT o DELETE para varios URL como los que se muestran a continuaciรณn;

http://localhost:3000/Books
http://localhost:3000/Students

En el ejemplo anterior,

  • Si se realiza una solicitud GET para el primero URL, entonces la respuesta idealmente deberรญa ser una lista de libros.
  • Si la solicitud GET se realiza para el segundo URL, entonces la respuesta idealmente deberรญa ser una lista de estudiantes.
  • Asรญ que, basado en el URL Al acceder a la pรกgina, se activarรก una funcionalidad diferente en el servidor web y, en consecuencia, se enviarรก la respuesta al cliente. Este es el concepto de enrutamiento.

Cada ruta puede tener una o mรกs funciones de controlador, que se ejecutan cuando la ruta coincide.

La sintaxis general de una ruta se muestra a continuaciรณn.

app.METHOD(PATH, HANDLER)

Donde,

1) la aplicaciรณn es una instancia del mรณdulo expreso

2) Mร‰TODO es un mรฉtodo de solicitud HTTP (GET, POST, PUT o DELETE)

3) PATH es una ruta en el servidor.

4) HANDLER es la funciรณn que se ejecuta cuando la ruta coincide.

Llame hoy al Solicitar retiro Propรณsito
aplicaciรณn.get(RUTA, MANEJADOR) Leer
aplicaciรณn.post(RUTA, MANEJADOR) PUBLICAR Crear
app.put(RUTA, MANEJADOR) PUT Reemplace
app.delete(RUTA, MANEJADOR) BORRAR Eliminar
app.route(RUTA) Encadenado manejadores de grupo
app.use(MANEJADOR) Aรฑo Middleware de montaje

โš ๏ธ expresa 5 Nota: Estas firmas no han cambiado, pero app.del() se convirtiรณ en app.delete(), res.sendfile() se convirtiรณ en res.sendFile() y los comodines ahora necesitan nombres como /*splat.

Veamos un ejemplo de cรณmo podemos implementar rutas en Express. Nuestro ejemplo crearรก 3 rutas como

  1. Una ruta /Nodo que mostrarรก la cadena "Tutorial en Nodo" si se accede a esta ruta
  2. Una ruta /Angular que mostrarรก la cadena "Tutorial sobre Angular" si se accede a esta ruta
  3. Una ruta predeterminada / que mostrarรก la cadena โ€œBienvenido a Guru99 tutoriales.

Nuestro cรณdigo bรกsico seguirรก siendo el mismo que el de los ejemplos anteriores. El siguiente fragmento es un complemento para mostrar cรณmo se implementa el enrutamiento.

Cรณdigo de enrutamiento de Express anotado que define las rutas de Node, Angular y predeterminadas.

var express = require('express');
var app = express();
app.route('/Node').get(function(req,res)
{
    res.send("Tutorial on Node");
});
app.route('/Angular').get(function(req,res)
{
    res.send("Tutorial on Angular");
});
app.get('/',function(req,res){
    res.send('Welcome to Guru99 Tutorials');
});

Code Explicaciรณn:

  1. Aquรญ estamos definiendo una ruta si la URL http://localhost:3000/Node is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Node URLLa funciรณn tiene 2 parรกmetros.
    • El parรกmetro principal que usaremos es el parรกmetro 'res', que se puede usar para enviar informaciรณn al cliente.
    • El parรกmetro 'req' tiene informaciรณn sobre la solicitud que se realiza. A veces, se pueden enviar parรกmetros adicionales como parte de la solicitud que se realiza y, por lo tanto, el parรกmetro 'req' se puede utilizar para encontrar los parรกmetros adicionales que se envรญan.
  2. Estamos utilizando la funciรณn de envรญo para enviar la cadena "Tutorial en el nodo" al cliente si se elige la ruta del nodo.
  3. Aquรญ estamos definiendo una ruta si la URL http://localhost:3000/Angular is selected in the browser. To the route, we are attaching a callback function which will be called when we browse to the Angular URL.
  4. Estamos utilizando la funciรณn de envรญo para enviar la cadena "Tutorial sobre Angular" al cliente si se elige la ruta Angular.
  5. Esta es la ruta predeterminada que se elige cuando uno navega a la raรญz de la aplicaciรณn: http://localhost:3000. Cuando se elige la ruta predeterminada, el mensaje โ€œBienvenido a GuruSe enviarรกn 99 tutoriales al cliente.

Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute su cรณdigo en el navegador.

Salida:

El navegador muestra Bienvenido a Guru99 tutoriales en la ruta Express predeterminada

Desde la salida,

  • Puedes ver claramente que si navegas a la URL de localhost en el puerto 3000, verรก la cadena 'Bienvenido a GuruEn la pรกgina se muestran 99 tutoriales.
  • Porque en nuestro cรณdigo hemos mencionado que nuestro valor predeterminado URL mostrarรญa este mensaje.

A continuaciรณn, navegue hasta /Node.

Navegador que muestra el tutorial sobre Node devuelto por la ruta de Node.

Desde la salida,

  • Puedes ver que si el URL Se ha cambiado a /Node, se elegirรญa la ruta Node correspondiente y se mostrarรญa la cadena "Tutorial sobre Node".

Luego, navegue hasta /Angular.

Navegador que muestra el tutorial sobre Angular devuelto por la ruta de Angular.

Desde la salida,

  • Puedes ver que si el URL Se ha cambiado a /Angular, se elegirรญa la ruta de Node correspondiente y se mostrarรญa la cadena "Tutorial sobre Angular".

Servidor web de muestra usando express.js

En el ejemplo anterior, vimos cรณmo podemos decidir quรฉ salida mostrar segรบn el enrutamiento. Este tipo de enrutamiento es el que se usa en la mayorรญa de las aplicaciones web modernas. La otra parte de un servidor web consiste en usar plantillas en Node.js.

Para crear aplicaciones Node.js rรกpidas y sencillas, una forma fรกcil y rรกpida es usar plantillas. Existen muchos frameworks disponibles en el mercado para crear plantillas. En este caso, utilizaremos como ejemplo el framework Jade.

Jade se instala a travรฉs del Administrador de paquetes de Node. Esto se puede hacer ejecutando la siguiente lรญnea en la lรญnea de comandos.

npm instala jade

El comando anterior solicita al gestor de paquetes de Node que descargue los mรณdulos Jade necesarios y los instale correctamente.

NOTA: En la รบltima versiรณn de Node, jade ha quedado obsoleto. En su lugar, utiliza pug.

โš ๏ธ Equivalente moderno: instalar Pug, cambia el nombre de index.jade a index.pug y establece app.set('view engine','pug'). El paquete jade no recibe actualizaciones; los pasos siguientes se ejecutan igualmente.

Vamos a usar nuestro framework Jade reciรฉn instalado y crear algunas plantillas bรกsicas.

Paso 1) El primer paso es crear una plantilla Jade. Crea un archivo llamado index.jade e inserta el siguiente cรณdigo. Asegรบrate de crear el archivo en la carpeta "views".

Marcado de plantilla index.jade con marcadores de posiciรณn para tรญtulo y encabezado.

  1. Aquรญ especificamos que el tรญtulo de la pรกgina se cambiarรก a cualquier valor que se pase cuando se invoque esta plantilla.
  2. Tambiรฉn especificamos que el texto de la etiqueta de encabezado se reemplazarรก por el que se pase en la plantilla Jade.

A continuaciรณn se muestra el cรณdigo de la aplicaciรณn que lo renderiza.

Cรณdigo Express anotado que configura el motor de vista Jade y el รญndice de renderizado.

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Guru99',message:'Welcome'})
});
var server=app.listen(3000,function() {});

Code Explicaciรณn:

  1. Lo primero que hay que especificar en la aplicaciรณn es el "motor de renderizado" que se utilizarรก para mostrar las plantillas. Como vamos a usar Jade para renderizarlas, lo especificamos en consecuencia.
  2. La funciรณn de renderizado se utiliza para renderizar una pรกgina web. En nuestro ejemplo, estamos renderizando la plantilla (index.jade) que se creรณ anteriormente.
  3. Estamos pasando los valores de โ€œGuru99โ€ y โ€œBienvenidoโ€ a los parรกmetros โ€œtรญtuloโ€ y โ€œmensajeโ€ respectivamente. Estos valores serรกn reemplazados por los parรกmetros โ€œtรญtuloโ€ y โ€œmensajeโ€ declarados en la plantilla index.jade.

Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute su cรณdigo en el navegador.

Salida:

El navegador muestra la plantilla Jade con el tรญtulo Guru99 y encabezado Bienvenido

Desde la salida,

  • Podemos ver que el tรญtulo de la pรกgina se establece en โ€œGuru99โ€ y el encabezado de la pรกgina se establece en โ€œBienvenidoโ€.
  • Esto se debe a la plantilla Jade que se invoca en nuestra aplicaciรณn Node.js.

Preguntas Frecuentes

middleware Las funciones reciben req, res y next, y luego se ejecutan en el orden de registro. Se encargan del registro de eventos, el anรกlisis del cuerpo de la respuesta, la autenticaciรณn y los errores, y cada una debe finalizar la respuesta o llamar a next().

No. Express agrupa los analizadores, por lo que express.json() y express.urlencoded() reemplazan los analizadores separados. analizador de cuerpo dependencia. Se eliminรณ la funciรณn auxiliar combinada bodyParser() y req.body permanece indefinido hasta que se ejecuta un analizador.

expresa 5 Se hicieron que los manejadores fueran conscientes de las promesas, se eliminaron app.del() y res.sendfile(), se mejorรณ la coincidencia de rutas para que los comodines necesiten nombres como /*splat, y se estableciรณ urlencoded extended en falso por defecto.

En Express 5, una promesa rechazada pasa automรกticamente al middleware de manejo de errores, por lo que desaparecen las llamadas manuales a next(err). Express 4 necesita un try/catch explรญcito dentro de cada async. llamar de vuelta.

PugJade fue renombrado por motivos de marca registrada y el paquete jade estรก obsoleto. Las plantillas existentes seguirรกn funcionando despuรฉs de renombrarlas a .pug y cambiar el motor de visualizaciรณn.

Node.js 24 es la lรญnea LTS activa durante 2026, mientras que Node.js 22 permanece en mantenimiento, por lo que instalar Una de esas. Express 5 requiere Node.js 18 o posterior.

Los escรกneres de aprendizaje automรกtico leen las definiciones de ruta y el orden del middleware, luego marcan la autenticaciรณn faltante y no validada. JavaScript Reglas CORS permisivas y de entrada. Un revisor humano confirma cada hallazgo.

Copiloto de GitHub y asistentes de agentes similares generan archivos de ruta, middleware de validaciรณn y stubs de controlador a partir de una breve solicitud. Cada ruta generada aรบn necesita las pruebas antes del lanzamiento.

Resumir este post con: