在 Express 上使用带有 `app.use` 的路由参数
Use route parameters with `app.use` on Express
我无法在 Express 4.16.2 上使用 app.use
的路由参数。
我有这样的声明:
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
.
在我研究的过程中,我得到了 this GitHub issue and this pull request 来关闭问题。但似乎问题仍然存在。还是我做错了什么?
我只会做 app.use('/course-sessions/', chapterSessionsRouter) 并处理路由器内部的 id。
您必须以不同的方式设置路由器,请尝试使用 mergeParams
访问父路由中的参数。
let router = express.Router({ mergeParams: true });
我无法在 Express 4.16.2 上使用 app.use
的路由参数。
我有这样的声明:
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
.
在我研究的过程中,我得到了 this GitHub issue and this pull request 来关闭问题。但似乎问题仍然存在。还是我做错了什么?
我只会做 app.use('/course-sessions/', chapterSessionsRouter) 并处理路由器内部的 id。
您必须以不同的方式设置路由器,请尝试使用 mergeParams
访问父路由中的参数。
let router = express.Router({ mergeParams: true });