我不能在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
。
在研究时,我得到了这个GitHub问题,并关闭了该问题。但是看来这个问题仍然存在。还是我做错了什么?
您必须以不同的方式设置路由器,请尝试使用mergeParams
访问父路由中的参数。
let router = express.Router({ mergeParams: true });
请参阅文档:http://expressjs.com/en/api.html
我只做app.use('/course-sessions/',章节sersionsrouter)并处理路由器内的ID。