Express 4命名空间参数?

我一直在使用Express 4,我只是尝试使用命名空间路由,但是我想命名空间路由有一个参数。

例如:

/:username/shows /:username/shows/:showname/episodes 

等等等等。所以,我认为这将是一个很好的适合明确的命名空间。

 Router = require("express").Router; userRouter = Router(); userRouter.route("/shows").get(function(req,res){ ... }); app.use("/:param", userRouter); 

这将得到页面加载预期在/:username/shows ,但是我通常希望find一个名为username密钥的req.params是空的。 我错过了什么吗? 我在哪里可以访问这些参数?

在你的代码中, :username param被app使用,而不是在userRouter 。 你只能从app访问,或者你可以通过使用app.params()函数curry :username参数信息给userRouter

 app.param('username', function(req, res, next, username) { req.username = req.params.username; next(); }); app.use('/:username', userRouter); userRouter.get('/show', function(req, res, next){ var username = req.username; // Here you can access; res.send("DONE"); });