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);