我正在通过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");
});
当我转到验证索引页面时,我看到控制台上打印了一次“Executing verification index.”。但是,当我转到验证更改页面时,我看到“执行验证更改”在控制台上打印了两次。
我注意到这是我的应用程序中的路线的一个趋势。包含参数的路由总是执行两次,而没有参数的路由只(正确地)执行一次。
为什么带参数的路由会执行两次?
正在呈现的视图只包含简单的HTML -没有任何内容会导致对页面的另一个请求。此外,我从Chrome浏览器发出这些请求。
平台/版本:
- NodeJS:0.5.5 windows build(在Win 7上运行)
- 快递:2.4.6
- 连接:1.7.1
2条答案
按热度按时间vfhzx4xs1#
第二个请求是/favicon.ico尝试在http_server请求处理程序中控制台记录你的request.url,你会看到第一个是浏览器url,下一个是favicon。
woobm2wo2#
如果您使用Chrome:当你写你的网址时,chrome在你按回车键之前发送一个get请求来检查网址。
试着记录中间件的url console.log(req.url),把你的控制台放在你的浏览器旁边,然后开始写url,你会看到控制台记录一个get access。