【问题标题】:How to pass path parameters to a sub router in Express如何将路径参数传递给 Express 中的子路由器
【发布时间】:2016-06-17 12:01:34
【问题描述】:

下面的代码:

router.use('/campaigns/:campaign_uid', cache.node_cache, api_dynamic_campaign.router);

我有一个到另一个路由器的路由器路由,如下所示:

router.get('/data.json', campaigns);

处理程序如下所示:

function campaigns(request, response){
    var campaign = api.get_campaign_from_request(request) || request.params.campaign_uid;
    api.route_handler(request, response, {"campaign":campaign});
}

我的问题是处理程序无权访问 request.params 中的campaign_uid。 如何访问/传递campaign_uid 给处理程序?

【问题讨论】:

  • 您的中间件可以向req 对象添加属性,并且这些属性将可以被链中的其他路由处理程序访问。这就是许多中间件处理程序已经为 cookie 和查询参数等所做的事情......
  • 我相信这就是 app.param 或 router.param 的用途。

标签: node.js express routing


【解决方案1】:
router.get('/data.json', campaigns).Router({ mergeParams: true })

https://cedric.tech/blog/expressjs-accessing-req-params-from-child-routers

【讨论】:

  • 请花一些时间来实际解释您的答案内容。有时发布外部参考资料可能会有所帮助,但这只是对已经非常详尽的答案的一个很好的补充
猜你喜欢
  • 2016-09-21
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-05
  • 1970-01-01
相关资源
最近更新 更多