首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特快4命名空间参数?

特快4命名空间参数?
EN

Stack Overflow用户
提问于 2015-07-28 17:55:02
回答 1查看 217关注 0票数 1

我一直在使用Express 4,我只是尝试使用一个命名空间路由,但我希望命名空间路由有一个param。

例如:

代码语言:javascript
复制
/:username/shows
/:username/shows/:showname/episodes

等等,有了这个,我认为这将是一个很好的适合快速命名空间。

代码语言:javascript
复制
Router = require("express").Router;
userRouter = Router();

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

这将使页面按预期的方式加载到/:username/shows中,但是req.params,我通常希望在那里找到一个名为username的键是空的。我是不是遗漏了什么?我在哪里可以进入这些对撞机?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-28 18:19:48

在您的代码中,:username param由应用程序使用,而不是在userRouter中使用。您只能从app访问该信息,也可以使用app.params()函数将:username param信息存储到userRouter

代码语言:javascript
复制
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");
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31683742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档