为什么没有达到默认快速路线?

时间:2018-02-15 16:21:57

标签: javascript express

我已经实施了多条路线,并希望明确达到默认路线,如下所示:

app.get('/', function(req,res,next){
  console.log('default route');
  // Do some work
  next('route');
}

不幸的是,这条路线永远不会到达,表达简单地通过它。但是,当我稍微改变路线时,它会匹配,如下所示:

app.get('/:bogus', function(req,res,next){
  ...
  next('route');
}

为什么需要额外的特异性?为什么不表示始终匹配' /'?

2 个答案:

答案 0 :(得分:0)

/不是默认路由。它是/的路由,仅/(查询字符串除外)。

/:bogus/something的路由,其中​​“something”是客户在请求中放置的内容。

答案 1 :(得分:0)

app.get()处理特定路径,http://localhost:8080/相当于/

/:bogus是针对网址参数的,当您输入类似以下内容时它是等效的:http://localhost:8080/HelloWorld

app.get('/:bogus', function(req, res){
    //console.log("Value is :"+req.params.bogus);
    res.send("Value is : "+req.params.bogus);
});

最后一行中,您可以添加此方法,当您输入路线中未定义的网址时,默认情况下会调用此方法

// After all your routes...
//Page Not Found
app.use(function(req, res){
    res.sendStatus(404);
});