我正在通过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浏览器发出这些请求。
平台/版本:
答案 0 :(得分:17)
第二个请求是/favicon.ico 尝试在http_server请求处理程序中控制记录您的request.url,您将看到第一个是浏览器URL,下一个是favicon。
答案 1 :(得分:-1)
如果您使用的是chrome: 当你编写你的网址时,发送一个获取请求以在你输入之前检查网址。
尝试记录中间件网址console.log(req.url)将控制台放在旁边,然后开始编写网址,您将看到控制台记录获取访问权限。