nodejs – http.createServer semble appeler deux fois

Si j’écris le programme suivant dans le noeud:

http.createServer(function (req, res) { if( req.method == 'GET' ) { var body = ''; req.on('data', function(data) { body += data }); req.on('end', function() { console.log('request ended') }); } res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('142\n'); }).listen(3500); 

Et puis appuyez sur le serveur avec http://xxx.xx.xxx.xx:35010 Je vois une request ended deux fois sur ma console – je ne sais pas pourquoi une requête HTTP unique provoque son exécution deux fois.

C’est normal – votre navigateur fait plus d’un appel.

La plupart des navigateurs appellent pour récupérer /favicon.ico par exemple.

Essayez de vous connecter à l’url:

 console.log(req.url); 

et vous verrez ce qui est appelé.

En général, favicon.ico est récupéré par les navigateurs. Donc, les deux appels.

La solution à ce problème peut consister à vérifier l’URL de la demande si elle récupère favicon.ico ou non.

 http.createServer(function (req, res) { if (req.url != '/favicon.ico') { // do your stuffs } }).listen(3500);