В Express, что делает app.router точно?
Когда я создаю образец Express-приложения с использованием экспресс-двоичного кода, код начальной загрузки имеет следующие строки:
...
var app = express();
...
app.use(app.router);
Я не нашел много о app.router. Я думал, что это промежуточное программное обеспечение, которое обрабатывает правила маршрутизации (app.get(), app.post() и т.д.), Но эти правила также выполняются при удалении app.use(app.router); линия.
Итак, какова же цель этого промежуточного программного обеспечения?
Ответы
Ответ 1
Это из руководства Express 2.x http://expressjs.com/2x/guide.html
"Обратите внимание на использование app.router, который может (необязательно) использоваться для монтирования маршруты приложения, в противном случае первый вызов app.get(), app.post() и т.д. будут монтировать маршруты.
Я подозреваю, что это относится и к Express 3.x.
Ответ 2
В Express 3.x приложение app.router является расширенной версией подключаемого промежуточного маршрутизатора. Как сказал гектор, это Экспресс обрабатывает обработчики запросов, зарегистрированные с помощью app.get
, app.post
и т.д.
Если вы не вызываете app.use(app.router)
явно, то выражение будет вызывать его неявно при первом использовании app.get(...)
, app.post(...)
и т.д. Однако вы можете явно указать .use
, потому что тогда вы выбираете порядок всего вашего промежуточного программного обеспечения.
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')));
Посмотрите, как маршрутизатор извлекается в источнике Express 3 здесь.
Обратите внимание, что Экспресс 4 не нужен app.router.
Ответ 3
Этот метод устарел
почему мы используем маршрутизатор.. из-за того, что нам нужно подключить наше приложение к нашему главному приложению.