我们如何才能使访问量在一个特定的事件中只增加1而不是2?

当我们在Node.js中实现一个访问计数器时,计数增加2作为一个调用Web服务器,一个用于加载Favicon,所以总共有两个。 我正在使用下面的代码来实现访问计数。

var http = require('http'); var userCount = 0; var server = http.createServer(function (req, res) {     userCount++;     res.writeHead(200, { 'Content-Type': 'text/plain' });     res.write('Hello!\n');     res.write('We have had ' + userCount + ' visits!\n');     res.end();  }); server.listen(9090); console.log('server running...') 

当你访问一个url时,大多数浏览器发送一个额外的请求来获取/favicon.ico在标签页头中使用。 就Web服务器而言,这是一个截然不同的HTTP请求。

如果您想从计数中排除对/favicon.ico请求,请在/favicon.ico添加一个filter:

 if (req.url !== '/favicon.ico') { userCount++; } 

请注意,如果您输出带有样式表和图片引用的HTML,浏览器将为其中的每一个发送额外的HTTP请求。