2011-10-26 18 views
12

運行此代碼時,i每次增加2,並且我無法在文檔中找出它的原因或者爲什麼會出現這種情況。我希望每個請求的增量都是1,但事實並非如此。爲什麼這是這樣的行爲?對於每個請求,NodeJS服務器將變量增量爲2

var http = require('http'); 
var i = 0; 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Number: ' + i + '\n'); 
    i++; 
}).listen(8000, '127.0.0.1'); 
+0

只是爲了確認,你使用的是Chrome嗎?您是否嘗試過其他瀏覽器?我懷疑它不會發生在Firefox(例如),請參閱我對Raynos的回答的評論。 –

回答

29

console.log(req.url);

你會注意到的URL是//favicon.ico

瀏覽器,如發出請求的favicon.ico你。這就是爲什麼你得到2個請求。

+0

這可能是由於Chrome中的錯誤,請參閱此答案:http://stackoverflow.com/questions/4761913/server-socket-receives-2-http-requests-when-i-send-from-chrome-and -receives-one/4941800#4941800 –

+0

@LukeGirvin Yup,Chrome。第一次只增加兩次,每次之後都是單次遞增。我沒有想到favicon問題。 – Matty

+0

哦,我第一次進入Node.js時也注意到了這個問題。謝謝你的回答雷諾斯! –