Tutorial de Node.js Express Framework: aprenda en 10 minutos
En este tutorial, estudiaremos el marco Express. Este marco estรก construido de tal manera que actรบa como un marco de aplicaciรณn web Node.js mรญnimo y flexible, proporcionando un conjunto sรณlido de caracterรญsticas para crear aplicaciones web hรญbridas, de una o varias pรกginas.
ยฟQuรฉ es Express.js?
Express.js es un marco de servidor de aplicaciones web Node js, que estรก diseรฑado especรญficamente para crear aplicaciones web hรญbridas, de una sola pรกgina y de varias pรกginas.
Se ha convertido en el marco de servidor estรกndar para node.js. Express es la parte backend de algo conocido como pila MEAN.
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 aplicaciones web predeterminado
3) Angular.js - JavaMarco de trabajo MVC de scripts utilizado para aplicaciones web
4) Node.js โ Marco 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 los mรณdulos express necesarios y los instale en consecuencia.
Usemos nuestro marco Express reciรฉn instalado y creemos una aplicaciรณn simple "Hola mundo".
Nuestra aplicaciรณn crearรก un mรณdulo de servidor simple que escucharรก en el puerto nรบmero 3000. En nuestro ejemplo, si se realiza una solicitud a travรฉs del navegador en este nรบmero de puerto, la aplicaciรณn del servidor enviarรก una respuesta de "Hola mundo" al cliente. .
var express=require('express');
var app=express();
app.get('/',function(req,res)
{
res.send('Hello World!');
});
var server=app.listen(3000,function() {});
Explicaciรณn del cรณdigo:
- En nuestra primera lรญnea de cรณdigo, utilizamos la funciรณn require para incluir el "mรณdulo expreso".
- Antes de que podamos comenzar a usar el mรณdulo express, necesitamos convertirlo en un objeto.
- Aquรญ estamos creando una funciรณn de devoluciรณn de llamada. Esta funciรณn se llamarรก cada vez que alguien navegue hasta 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.
- 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.
- Luego usamos la funciรณn de escucha para hacer que nuestra aplicaciรณn de servidor escuche las solicitudes de los clientes en el puerto nรบmero 3000. Puede especificar cualquier puerto disponible aquรญ.
Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute su cรณdigo en el navegador.
Salida:
Desde la salida,
- Puede ver claramente que si navegamos a la URL de localhost en el puerto 3000, verรก la cadena "Hola mundo" en la pรกgina.
- Debido a que en nuestro cรณdigo hemos mencionado especรญficamente que el servidor escuche en el puerto nรบmero 3000, podemos ver el resultado cuando navegamos a esta URL.
ยฟQuรฉ son las Rutas?
El enrutamiento determina la forma en que una aplicaciรณn responde a una solicitud de cliente a un punto final en particular.
Por ejemplo, un cliente puede realizar una solicitud http GET, POST, PUT o DELETE para varias URL como las 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 la primera URL, lo ideal es que la respuesta sea una lista de libros.
- Si la solicitud GET se realiza para la segunda URL, lo ideal es que la respuesta sea una lista de estudiantes.
- Entonces, segรบn la URL a la que se accede, se invocarรก 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.
Veamos un ejemplo de cรณmo podemos implementar rutas en el expreso. Nuestro ejemplo crearรก 3 rutas como
- Una ruta /Nodo que mostrarรก la cadena "Tutorial en Nodo" si se accede a esta ruta
- Una ruta /Angular que mostrarรก la cadena "Tutorial sobre Angular" si se accede a esta ruta
- Una ruta predeterminada / que mostrarรก la cadena "Bienvenido a los tutoriales de Guru99".
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.
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');
}));
Explicaciรณn del cรณdigo:
- Aquรญ estamos definiendo una ruta si la URL http://localhost:3000/Node estรก seleccionado en el navegador. A la ruta, adjuntamos una funciรณn de devoluciรณn de llamada que se llamarรก cuando naveguemos a la URL del nodo. La 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.
- 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.
- Aquรญ estamos definiendo una ruta si la URL http://localhost:3000/Angular estรก seleccionado en el navegador. A la ruta, adjuntamos una funciรณn de devoluciรณn de llamada que se llamarรก cuando naveguemos hasta la URL de Angular.
- Estamos utilizando la funciรณn de envรญo para enviar la cadena "Tutorial sobre Angular" al cliente si se elige la ruta Angular.
- Esta es la ruta predeterminada que se elige cuando uno navega a la ruta de la aplicaciรณn. http://localhost:3000. Cuando se elige la ruta predeterminada, se enviarรก al cliente el mensaje "Bienvenido a los tutoriales de Guru99".
Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida cuando ejecute su cรณdigo en el navegador.
Salida:
Desde la salida,
- Puede ver claramente que si navegamos a la URL de localhost en el puerto 3000, verรก la cadena "Bienvenido a los tutoriales de Guru99" en la pรกgina.
- Porque en nuestro cรณdigo, mencionamos que nuestra URL predeterminada mostrarรญa este mensaje.
Desde la salida,
- Puede ver que si la URL se ha cambiado a /Nodo, se elegirรก la ruta del nodo respectivo y se mostrarรก la cadena "Tutorial en el nodo".
Desde la salida,
- Puede ver que si la URL se cambiรณ a /Angular, se elegirรก la ruta del nodo respectivo y se mostrarรก la cadena "Tutorial sobre Angular".
Servidor web de muestra usando express.js
En nuestro ejemplo anterior, hemos visto cรณmo podemos decidir quรฉ salida mostrar en funciรณn del enrutamiento. Este tipo de enrutamiento es el que se utiliza en la mayorรญa de las aplicaciones web modernas. La otra parte de un servidor web consiste en usar plantillas en Node js.
Al crear aplicaciones Node rรกpidas sobre la marcha, una forma fรกcil y rรกpida es utilizar plantillas para la aplicaciรณn. Hay muchos marcos disponibles en el mercado para crear plantillas. En nuestro caso, tomaremos el ejemplo del marco de jade para crear plantillas.
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 administrador de paquetes de Node que descargue los mรณdulos jade necesarios y los instale en consecuencia.
NOTA: En la รบltima versiรณn de Node, jade ha quedado obsoleto. En su lugar, utiliza pug.
Usemos nuestro marco de jade reciรฉn instalado y creemos algunas plantillas bรกsicas.
Paso 1) El primer paso es crear una plantilla de jade. Cree un archivo llamado index.jade e inserte el siguiente cรณdigo. Asegรบrese de crear el archivo en la carpeta "vistas"
- Aquรญ especificamos que el tรญtulo de la pรกgina se cambiarรก a cualquier valor que se pase cuando se invoque esta plantilla.
- Tambiรฉn especificamos que el texto en la etiqueta del encabezado se reemplazarรก por lo que se pase en la plantilla de jade.
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() {});
Explicaciรณn del cรณdigo:
- Lo primero que se debe especificar en la aplicaciรณn es el โmotor de visualizaciรณnโ que se utilizarรก para representar las plantillas. Como vamos a utilizar jade para renderizar nuestras plantillas, lo especificamos en consecuencia.
- 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.
- 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:
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.
Resumen
- El marco express es el marco mรกs comรบn utilizado para desarrollar aplicaciones Node js. El marco express estรก construido sobre el marco node.js y ayuda a acelerar el desarrollo de aplicaciones basadas en servidor.
- Las rutas se utilizan para desviar a los usuarios a diferentes partes de las aplicaciones web segรบn la solicitud realizada. La respuesta para cada ruta puede variar dependiendo de lo que se debe mostrar al usuario.
- Las plantillas se pueden utilizar para inyectar contenido de manera eficiente. Jade es uno de los motores de plantillas mรกs populares utilizados en aplicaciones Node.js.









