Путаница по поводу заказа промежуточного программного обеспечения в express.js? - PullRequest
0 голосов
/ 06 ноября 2018

Как я понимаю, вызов app.use для части промежуточного программного обеспечения до объявления маршрута, такого как app.get('/hello'), приводит к запуску этого промежуточного программного обеспечения по запросу до того, как он достигнет этой функции маршрутизации. Моя путаница возникает, когда у вас возникает ситуация, по крайней мере, с тремя маршрутами и тремя промежуточными программами, и вы хотите, чтобы все было настроено так:

  • маршрут 1 должен использовать промежуточное программное обеспечение A и B
  • маршрут 2 должен использовать промежуточное программное обеспечение B и C
  • маршрут 3 должен использовать промежуточное программное обеспечение A и C

Я, конечно, что-то упускаю, так как мое текущее понимание делает такую ​​установку невозможной. В коде нет способа упорядочить операторы, которые позволили бы такую ​​конфигурацию.

Как это можно сделать? Чего мне не хватает?

1 Ответ

0 голосов
/ 08 ноября 2018

Это должно быть достаточно легко для достижения. Настройте это так

app.use('/route1', middlewareA, middlewareB, (req, res, next) => {})
app.use('/route2', middlewareB, middlewareC, (req, res, next) => {})
app.use('/route3', middlewareA, middlewareC, (req, res, next) => {})

Когда вы определяете маршруты подобным образом, промежуточное программное обеспечение применяется только к определенному маршруту. Если вы делаете это как app.use(middlewareA), то промежуточное программное обеспечение используется во всех маршрутах после него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...