Используйте параметры маршрута с `app.use` на Express
Я не могу использовать параметры маршрута с app.use
на экспресс 4.16.2.
У меня есть такое утверждение:
app.use('/course-sessions/:courseSessionId/chapter-sessions', chapterSessionsRouter)
А в главе сеансы роутера:
// Index.
router.get('/', ...resource.indexMethods)
Когда я получил '/course-sessions/0/chapter-sessions/'
У меня 404.
Тогда я пытаюсь сделать такое утверждение:
app.get('/course-sessions/:courseSessionId/chapter-sessions', ...chapterSessionResource.indexMethods)
Теперь у меня есть результат, который я хочу. Таким образом, параметры маршрута не работают с app.use
,
Во время исследования я получил эту проблему GitHub и этот запрос на удаление, который закрывает проблему. Но похоже, что проблема все еще здесь. Или я что-то не так делаю?
2 ответа
Вы должны настроить свой маршрутизатор по-другому, попробуйте использовать mergeParams
для доступа к параметрам в родительских маршрутах.
let router = express.Router({ mergeParams: true });
Смотрите документы: http://expressjs.com/en/api.html
Я сделал бы только app.use('/course-session /', chapterSessionsRouter) и обработал идентификатор внутри маршрутизатора.