2011-10-26 14 views
12

Cuando se ejecuta este código, i se incrementa en dos cada vez y no se puede identificar en la documentación o de otra manera por qué esto sería el caso. Esperaría que el incremento sea de uno para cada solicitud, pero no es así. ¿Por qué se está comportando así?NodeJS servidor aumentando la variable por dos para cada petición

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

Solo para confirmar, ¿estás usando Chrome? ¿Has probado otro navegador? Sospecho que no sucederá en Firefox (por ejemplo), vea mi comentario sobre la respuesta de Raynos. –

Respuesta

29

console.log(req.url);

notará la URL son / y /favicon.ico

navegadores como hacer peticiones a Favicon.ico para usted. Es por eso que obtienes 2 solicitudes.

+0

Esto es probablemente debido a un error en Chrome, vea esta respuesta: 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. Solo aumenta en dos en la primera ocasión, y cada vez después de eso es un incremento único. No pensé en el problema del favicon. – Matty

+0

Oh, también noté ese problema cuando llegué por primera vez a Node.js. Gracias por la respuesta Raynos! –

Cuestiones relacionadas