Saltar al contenido

¿Diferencias entre express.Router y app.get?

Te recomendamos que pruebes esta solución en un entorno controlado antes de pasarlo a producción, saludos.

Solución:

aplicación.js

var express = require('express'),
    dogs    = require('./routes/dogs'),
    cats    = require('./routes/cats'),
    birds   = require('./routes/birds');

var app = express();

app.use('/dogs',  dogs);
app.use('/cats',  cats);
app.use('/birds', birds);

app.listen(3000);

perros.js

var express = require('express');

var router = express.Router();

router.get('/', function(req, res) 
    res.send('GET handler for /dogs route.');
);

router.post('/', function(req, res) 
    res.send('POST handler for /dogs route.');
);

module.exports = router;

Cuando var app = express() se llama, se devuelve un objeto de aplicación. Piensa en esto como el aplicación principal.

Cuando var router = express.Router() se llama, un poco diferente mini aplicación es regresado. La idea detrás de la mini aplicación es que cada ruta en su aplicación puede volverse bastante complicada, y se beneficiaría de mover todo ese código a un archivo separado. El enrutador de cada archivo se convierte en un mini aplicaciónque tiene una estructura muy similar a la aplicación principal.

En el ejemplo anterior, el código para el /perros La ruta se ha movido a su propio archivo para que no sature el aplicación principal. El código para /gatos y /aves se estructurarían de manera similar en sus propios archivos. Al separar este código en tres miniaplicacionespuede trabajar en la lógica de cada uno de forma aislada y no preocuparse por cómo afectará a los otros dos.

Si tiene un código (middleware) que pertenece a las tres rutas, puede ponerlo en el aplicación principalantes de app.use(...) llamadas Si tiene un código (middleware) que pertenece solo a una de esas rutas, puede colocarlo en el archivo solo para esa ruta.

Express 4.0 viene con el nuevo enrutador. Como se menciona en el sitio:

La clase express.Router se puede usar para crear manejadores de ruta montables modulares. Una instancia de enrutador es un sistema de enrutamiento y middleware completo; por esta razón, a menudo se la denomina “mini-aplicación”.

Hay un buen artículo en https://scotch.io/tutorials/learn-to-use-the-new-router-in-expressjs-4 que describe las diferencias y lo que se puede hacer con los enrutadores.

Para resumir

Con los enrutadores puedes modularizar tu código más fácilmente. Puede utilizar enrutadores como:

  1. Rutas Básicas: Inicio, Acerca de
  2. Enrutar Middleware para registrar solicitudes en la consola
  3. Ruta con Parámetros
  4. Ruta Middleware para parámetros para validar parámetros específicos
  5. Valida un parámetro pasado a una ruta determinada

Nota:

Él app.router El objeto, que se eliminó en Express 4, ha regresado en Express 5. En la nueva versión, es solo una referencia al enrutador Express base, a diferencia de Express 3, donde una aplicación tenía que cargarlo explícitamente.

app.route('/book')
  .get(function (req, res) 
    res.send('Get a random book')
  )
  .post(function (req, res) 
    res.send('Post a random book')
  )

Como en el ejemplo anterior, podemos agregar diferentes métodos de solicitud HTTP en una ruta.

Tienes la opción de animar nuestra tarea ejecutando un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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