run node app node.js express

node.js - node - En Express, ¿qué hace app.router exactamente?



post express node (3)

Cuando creo una aplicación Express de muestra utilizando el binario expreso, el código de arranque tiene estas líneas:

... var app = express(); ... app.use(app.router);

No encontré mucho sobre app.router. Pensé que este es el middleware que maneja las reglas de enrutamiento (app.get (), app.post () etc.), pero estas reglas también se ejecutan cuando elimino la aplicación.use (app.router); línea.

Entonces, ¿cuál es el objetivo exacto de este middleware?


En Express 3.x, app.router es una versión mejorada del enrutador de middleware de conexión . Como dijo hector, esto es donde Express maneja los manejadores de solicitudes registrados con app.get , app.post , etc.

Si no llama a app.use(app.router) explícitamente, entonces express lo invocará implícitamente la primera vez que use app.get(...) , app.post(...) , etc. Sin embargo, es posible que desee para .use explícitamente, porque entonces eliges el orden de todo tu middleware.

app.use(express.favicon()); app.use(express.bodyParser()); app.use(express.methodOverride()); // app.get, app.post, etc called before static folder app.use(app.router); app.use(express.static(path.join(__dirname, ''public'')));

Vea aquí cómo se recupera el enrutador en la fuente Express 3.

Tenga en cuenta que Express 4 no necesita app.router .


Este metodo está obsoleto

por qué usamos el enrutador ... debido a que necesitamos conectar nuestra aplicación secundaria a nuestra aplicación principal.


Esto es de la guía Express 2.x http://expressjs.com/2x/guide.html

"Tenga en cuenta el uso de app.router, que puede (opcionalmente) usarse para montar las rutas de la aplicación, de lo contrario, la primera llamada a app.get (), app.post (), etc. montará las rutas".

Sospecho que esto se aplica a Express 3.x también.