我一直在使用Express 4,我只是尝试使用一个命名空间路由,但我希望命名空间路由有一个param。
例如:
/: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中,但是req.params,我通常希望在那里找到一个名为username的键是空的。我是不是遗漏了什么?我在哪里可以进入这些对撞机?
发布于 2015-07-28 18:19:48
在您的代码中,:username param由应用程序使用,而不是在userRouter中使用。您只能从app访问该信息,也可以使用app.params()函数将:username param信息存储到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");
});https://stackoverflow.com/questions/31683742
复制相似问题