2011-10-26 24 views
12

Khi mã này được chạy, i được tăng lên bởi hai mỗi lần và tôi không thể xác định trong tài liệu hoặc tại sao điều này sẽ là trường hợp. Tôi hy vọng số gia tăng sẽ là một cho mỗi yêu cầu, nhưng không phải vậy. Tại sao điều này hành xử theo cách của nó?NodeJS máy chủ incrementing biến bởi hai cho mọi yêu cầu

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

Chỉ cần xác nhận, bạn có đang sử dụng Chrome không? Bạn đã thử một trình duyệt khác chưa? Tôi nghi ngờ nó sẽ không xảy ra trong Firefox (ví dụ), xem bình luận của tôi về câu trả lời của Raynos. –

Trả lời

29

console.log(req.url);

Bạn sẽ nhận thấy các url là //favicon.ico

trình duyệt như làm cho các yêu cầu để favicon.ico cho bạn. Đó là lý do tại sao bạn nhận được 2 yêu cầu.

+0

Điều này có thể do lỗi trong Chrome, xem câu trả lời này: 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. Chỉ tăng thêm hai lần vào dịp đầu tiên, và mỗi lần sau đó là một gia số đơn. Tôi không nghĩ về vấn đề favicon. – Matty

+0

Ồ, tôi cũng nhận thấy vấn đề đó khi lần đầu tiên tôi tham gia Node.js. Cảm ơn Raynos đã trả lời! –

Các vấn đề liên quan