带参数的路由被调用两次?

时间:2011-09-20 01:43:52

标签: node.js connect express

我正在通过ExpressJS创建一个NodeJS Web应用程序。我有以下两条路线(其中包括):

app.get('/user/reset/verify', function(req, res) {
    console.log("Executing verification index.");
    res.render("verify/index");
});

app.get('/user/reset/verify/:email/:token', function(req, res) {
    console.log("Executing verification change.");
    res.render("verify/change");
});

当我进入验证索引页面时,我看到“执行验证索引”。在控制台上打印一次。但是,当我转到验证更改页面时,我会看到“执行验证更改”。在控制台上打印两次。

我注意到这是我应用中路线的趋势。包含参数的路由总是执行两次,而没有参数的路由只能(正确)执行一次。

为什么带参数的路线被执行两次?

正在呈现的视图仅包含简单的HTML - 不会导致对页面的另一个请求。另外,我是从Chrome浏览器发出这些请求。

平台/版本:

  • NodeJS:0.5.5 windows build(在Win 7上运行)
  • Express:2.4.6
  • 连接:1.7.1

2 个答案:

答案 0 :(得分:17)

第二个请求是/favicon.ico 尝试在http_server请求处理程序中控制记录您的request.url,您将看到第一个是浏览器URL,下一个是favicon。

答案 1 :(得分:-1)

如果您使用的是chrome: 当你编写你的网址时,发送一个获取请求以在你输入之前检查网址。

尝试记录中间件网址console.log(req.url)将控制台放在旁边,然后开始编写网址,您将看到控制台记录获取访问权限。