2011-10-26 10 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(例えば)で起こらないと思う、レイノスの答えに対する私のコメントを見てください。 –

答えて

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。最初の機会に2つだけ増分し、その後は毎回増分します。私はファビコンの問題を考えなかった。 – Matty

+0

ああ、Node.jsに初めて入ったときにその問題に気付きました答えRaynosに感謝します! –

関連する問題