Manejo de rutas y middleware en Express
En Express, las rutas definidas se comparan con la URL solicitada para enviar la solicitud a la función de controlador correspondiente. Los middleware también se pueden definir con rutas y se ejecutan antes de que se llegue a la función de controlador.
Definición de rutas en Express
Las rutas se definen usando los métodos HTTP correspondientes en un objeto de aplicación de Express:
const express = require('express'); const app = express(); app.get('/', function(req, res) { res.send('Hola mundo!'); });
En este ejemplo, hacemos que nuestra aplicación maneje solicitudes GET a la ruta raíz, es decir, a la URL http://localhost:3000/ . La función de controlador se ejecutará y enviará la respuesta ‘Hola mundo!’.
En una aplicación más grande, puede resultar difícil mantener un registro de todas las rutas y las funciones de controlador correspondientes. Para abordar este problema, podemos definir un archivo separado para manejar rutas específicas:
// routes/index.js const express = require('express'); const router = express.Router(); router.get('/', function(req, res) { res.send('Hola mundo desde el archivo separado!'); }); module.exports = router;
Ahora podemos importar el archivo de rutas en nuestra aplicación principal:
// app.js const express = require('express'); const app = express(); const indexRouter = require('./routes/index'); app.use('/', indexRouter); app.listen(3000, function() { console.log('El servidor está funcionando en el puerto 3000'); });
Aquí, estamos importando el archivo de rutas index.js y lo estamos utilizando en nuestra aplicación principal usando el método use().
Middleware en Express
En Express, el middleware son funciones que se ejecutan antes de que se llegue a la función de controlador correspondiente. Pueden manipular la solicitud y/o la respuesta, y pueden realizar tareas como la autenticación y la validación.
Para definir middleware en nuestra aplicación en Express, podemos usar el método app.use(). Con el middleware, la función debe aprobar la solicitud a la siguiente función en la cadena utilizando el objeto next().
app.use(function(req, res, next) { console.log('Se recibió una solicitud en ' new Date()); next(); });
En este ejemplo de código, estamos definiendo middleware para nuestra aplicación y agregando una función de registro. El middleware registra la hora en que se recibió una solicitud y luego pasa la solicitud y la respuesta a la siguiente función en la cadena usando next().
El middleware también se puede definir con rutas específicas, y solo se ejecutará cuando se solicite la ruta correspondiente:
app.use('/admin', function(req, res, next) { console.log('Se recibió una solicitud en la ruta /admin'); next(); });
En este ejemplo, definimos middleware para nuestra aplicación que solo se ejecutará cuando se solicite la ruta /admin. La función de registro se ejecutará antes de que se llegue a la función de controlador correspondiente.
Resumen
Express ofrece una gran cantidad de funcionalidades para manejar solicitudes HTTP. Las rutas definidas se comparan con la URL solicitada para enviar la solicitud a la función de controlador correspondiente. El middleware también se puede definir con rutas y se ejecutan antes de que se llegue a la función de controlador.
Con esta funcionalidad, las aplicaciones en Express se vuelven altamente escalables y fáciles de mantener. Además, al separar las rutas en distintos archivos, el código se organizado y fácil de leer y entender.
Deja una respuesta