Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

448
Vistas
¿Cuál es la diferencia entre el middleware a nivel de aplicación y de enrutador al enrutar en Express?

En los documentos Express , dice:

El middleware de nivel de aplicación está vinculado a una instancia de express, utilizando app.use() y app.VERB().

El middleware de nivel de enrutador funciona igual que el middleware de nivel de aplicación, excepto que están vinculados a una instancia de express.Router() . El sistema de middleware creado en el nivel de la aplicación en el ejemplo anterior se puede replicar en el nivel del enrutador usando el siguiente código.

En la aplicación proporcionada por el generador Express, veo en el app.js principal, hay:

 var routes = require('./routes/index'); app.use('/', routes);

Y en ./routes/index.js , veo esto:

 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); module.exports = router;

¿Cuál es el propósito de app.use pasándolo a router.get en lugar de simplemente usar app.get ? Y, en general, ¿cuál es la diferencia entre app.VERB y router.VERB en términos de enrutamiento?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

¿Cuál es el propósito de app.use pasándolo a router.get en lugar de simplemente usar app.get?

Todo esto es solo diseño para la modularidad. Permite que una aplicación se divida en varias piezas más pequeñas acopladas libremente y, dado que todas no tienen ningún conocimiento directo de la instancia de app compartida que las combina, se logra la modularidad.

Por ejemplo, podría crear un subsistema de cuenta de usuario completo que maneje el registro, el inicio de sesión, la contraseña olvidada, etc., y compartirlo entre varias aplicaciones diferentes al "montarlo" dentro de ellas a través app.use(require("my-user-system")) .

Ese es el único propósito detrás de esto. De lo contrario, no hay diferencia funcional, técnica o de rendimiento.

Y, en general, ¿cuál es la diferencia entre app.VERB y router.VERB en términos de enrutamiento?

Ninguna diferencia. La aplicación tiene su propio enrutador principal/principal y app.VERB es solo azúcar de conveniencia para el equivalente de app.router.VERB .

over 4 years ago · Santiago Trujillo Denunciar

0

Un ejemplo ayudará aquí:

En los pájaros.js:

 // birds.js var express = require('express'); var router = express.Router(); // middleware that is specific to this router router.use(function timeLog(req, res, next) { console.log('Time: ', Date.now()); next(); }); // define the home page route router.get('/', function (req, res) { res.send('Birds home page'); });

En la aplicación.js:

 // app.js const express = require('express') const app = express() var birds = require('./birds'); app.use('/birds', birds); app.listen(3000, () => console.log('app listening on port 3000!\naccess http://localhost:3000/birds/'))

Ahora las solicitudes a http://localhost:3000/birds/ irán al archivo birds.js.

Este enfoque modular facilitará el mantenimiento de una gran base de código, a medida que la aplicación crezca.

Fuente: https://expressjs.com/en/guide/routing.html

over 4 years ago · Santiago Trujillo Denunciar

0

La aplicación tiene el método listen y algún otro que no tiene el router.

La aplicación "hace" lo principal, mientras que la ruta solo agrupa algunas rutas, proporciona encapsulación (vea la respuesta de Manohar con el ejemplo).

Las rutas en el enrutador no necesariamente saben de antemano cuál será su ruta completa. Vea en el ejemplo que '/birds' está definido en app.js, que es la raíz del enrutador en birds.js... la diferencia entre app.VERB y rourer.VERB está en el contexto.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda