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"); });