9.3 Manejo de rutas y middleware en Express

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.

AnteriorSiguiente

[mwai_chat]

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *