Я пытаюсь использовать промежуточное ПО маршрутизатора, чтобы получить значение req.route .У меня есть простой код, подобный этому:
server.js
import api from './api';
// ...
app.use('/api/', api);
api / index.js
Object.keys(routes).forEach(key => {
router.use(function(req, res, next) {
console.log('++++++++++++++++++');
console.log(req.route);
console.log('++++++++++++++++++');
next();
});
// so localhost:8080/api/currentkey works
router.use(`/${key}`, routes[key]);
});
Когда я нажимаю /api/currentkey
, req.route
не определено.Если я перемещу промежуточное программное обеспечение после определения маршрута (вместо ранее), оно, похоже, не сработает вообще.
Все мои объекты маршрутизатора настроены с использованием метода, подобного следующему:
import express from 'express';
import asyncify from 'express-asyncify';
export default function() {
return asyncify(express.Router());
}
Я видел решение с использованием событий на Получить определение маршрута в промежуточном программном обеспечении , но мне интересно, почему это требуется по сравнению с тем, что я здесь сделал.Я также не уверен, что то, как оно написано, сделает вещи точными (например, изменение имени транзакции для новой реликвии)