ExpressJS Router es una clase que actúa como un middleware para proporcionar el manejo de rutas o determinar cómo responde una aplicación a las requests de un cliente, de varios métodos HTTP, a un URI en particular.
Creación de la aplicación Express e instalación del módulo:
Paso 1: Cree package.json usando el siguiente comando:
npm init
Paso 2: Puede visitar el enlace Instalar Express para ver cómo instalar el módulo express. Puede instalar este paquete usando el comando:
npm install express
Paso 3: Cree archivos app.js , params.js y route.js en la carpeta de vista . El directorio del proyecto se verá así:
Configurar Regex en URL:
Podemos configurar Regex fácilmente para nuestro Express Router siguiendo estos dos puntos:
- Para hacer que nuestra ruta coincida con una expresión regular en particular, podemos colocar expresiones regulares entre dos barras diagonales como esta /<routeRegex>/
- Dado que cada ruta contiene / , siempre que tengamos que usar / dentro de Regex, use una barra invertida \ / antes.
Ejemplo: en el siguiente código, estamos configurando expresiones regulares, porque cuando se recibe una solicitud de obtención de HTTP para enrutar /home , se muestra una página de inicio de respuesta al cliente.
router.get(/\/home/ , (req,res)=>{ res.send('Homepage'); )
Ahora cree un archivo route.js que contendrá diferentes requests para diferentes rutas usando Regex.
routes.js
// Requiring module const express = require('express'); const router = express.Router(); // Route which matches /abc or /adc router.get(/\/a[b|d]c/, (req, res) => { res.send("<h1>Route First</h1"); }) // Routes that matches /a(any single digit)/ // followed by 2 times c or 3 times c or // /a(any single digit) / followed by 2 // times c or 3 times c router.get(/\/a[0-9]\/c{2,3}/, (req, res) => { res.send("<h1>Route Second</h1"); }) // Routes that ends with /Hello followed by // a letter in [a-z] any no. of times and // ends with "OK" router.get(/^\/Hello[a-z]*OK$/, (req, res) => { res.send('<h1>Route Third</h1>') }) // Routes that must end with string "Hello" // and can have any no. of any character // before that router.get(/\/*Hello$/, (req, res) => { res.send('<h1>Route Fourth</h1>') }) module.exports = router;
Configuración de Regex en parámetros de URL:
Para configurar Regex para parámetros de URL, podemos proporcionar expresiones regulares entre paréntesis justo después del nombre de los parámetros. En el siguiente archivo, hemos implementado Regex para parámetros de URL.
params.js
// Requiring module const express = require('express'); const router = express.Router(); // Setting up regex for name and contact parameters router.get('/user/:name([a-zA-Z]+)/:contact([6-9][0-9]{9})', (req, res) => { const name = req.params.name; const contact = req.params.contact; res.send({ "username": name, "contact": contact }) }) module.exports = router;
app.js
// Requiring modules const express = require('express'); const app = express(); const router = express.Router(); const route = require('./routes'); const param = require('./params'); // Using routers as middleware to // use route.js and params.js app.use('/', route); app.use('/', param); // Starting server on port 8000 app.listen(8000, () => { console.log("Server is listening on port 8000"); })
Paso para ejecutar la aplicación: Ejecute el archivo app.js usando el siguiente comando.
node app.js
Producción:
- Mostrando el funcionamiento de todas las rutas definidas en el archivo route.js .
- Mostrando el funcionamiento de las rutas definidas en el archivo params.js .
Publicación traducida automáticamente
Artículo escrito por localhost3000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA