У меня есть такое приложение:
import express from 'express';
const middleware = tag => (req, res, next) => {
console.log('middleware ' + tag);
next();
};
const app = express();
const router = express.Router();
router.use(middleware('a'));
router.get('/x', (req, res) => res.json({ message: 'x' }));
app.use(router);
app.use(middleware('b'));
app.get('/y', (req, res) => res.json({ message: 'y' }));
app.use(middleware('c'));
app.listen(3000);
Однако Router
ведет себя не так, как я ожидал:
$ curl localhost:3000/x
промежуточное ПО
$ curl localhost:3000/y
промежуточное ПО
промежуточное ПО b
Почему нажатие /y
вызывает промежуточное ПО? Я думал, что промежуточное программное обеспечение было применено только к router
.
Как применить промежуточное ПО только к router
, а не к другим маршрутам в app
?