【问题标题】:What is wrong with my express.js route configuration?我的 express.js 路由配置有什么问题?
【发布时间】:2014-07-31 10:50:14
【问题描述】:

我有一个使用 Express 路由请求的服务器。

在此我设置了以下路线:

  productRouter = ProductRouter app 
  app.use '/', productRouter 
  app.use '/products/(videocloud|perform)/*', productRouter
  app.use '/user', UserRouter accountService: app.get('accountService'), setiClient: app.get('setiClient') # user endpoint for StudioModule client side SDK

问题在于,为处理“/”请求而建立的路由出于某种原因正在处理所有先前未路由的请求。这意味着如果用户尝试导航到“/user”,它会由产品路由器处理。

这里发生了什么,处理域级请求的适当方法是什么?

【问题讨论】:

  • 你用的是什么版本的快递?
  • productRouter 是否通过不匹配的路由? app.use 只是匹配前缀,所以'/' 将通过productRouter 发送每个请求,然后如果它不处理请求,它将传播到其余路由。

标签: node.js express connect


【解决方案1】:

app.use '/', productRouter 对任何前缀为 / 的请求运行中间件 productRouter,该前缀将包括所有请求。

如果您只想处理 / 处的根域请求,请使用app.get,例如:

app.get('/', function(req, res){
  res.send('hello world');
});

【讨论】:

  • 好电话,我没有意识到使用的字符串匹配语法与 app.VERB 的语法不同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 2017-07-28
  • 1970-01-01
  • 2017-03-08
  • 2014-01-13
  • 2014-04-11
相关资源
最近更新 更多