2017-11-17 2 views
-1

I js einfachen Knoten Code folgende Ausführung amKnoten js Konsole Code wird zweimal ausgeführt

var http = require('http'); 

http.createServer(function(req, res) { 
    res.writeHead(200, {'Content-Type':'text/plain'}); 
    res.end('Hello Node JS'); 
    console.log('printing the message'); 
}).listen(8080); 

Nach der Ausführung des Befehls node sample.js und

auf Browser die URL schlagen http://localhost:8080/

Ich erhalte die Konsolen-Log-Anweisung zweimal an der Eingabeaufforderung als printing the message

Alle Vorschläge

EDIT:

Interessanter auf anderen Browsern Nach der Überprüfung heißt Firefox, IE keine favicon.ico Anfrage auf Netzwerk-Registerkarte und Konsolenmeldung gemacht wird, wird nur einmal gedruckt.

Wie ich verstanden, mit express Modul ist eine bessere Option Anfragen in einer typischen Web-Anwendung

Antwort

0

Überprüfung, um herauszufinden, die Netzwerkbereich Ihres Browsers Entwickler-Konsole zu handhaben, welche Anforderungen gestellt werden. Ich stelle mir vor zwei sehen:

  • GET /
  • GET /favicon.ico

Der HTTP-Server alle Anfragen durch Drucken zu reagieren codiert zu trösten; Wenn Sie also zwei Anfragen sehen, erhalten Sie zwei Konsolenmeldungen.

+0

danke, du hast Recht aber wie kann man dieses Verhalten korrigieren? Da ich meine Konsolen-Anweisung zum Zeitpunkt der Anfrage nur einmal ausführen möchte. – Ankit

+2

Ihr Browser macht zwei Anfragen. Ihr Server sagt "auf jede Anfrage unabhängig von Pfad, drucken zu Konsole". es macht genau das, was Sie ihm sagen. Wenn Sie unter bestimmten Umständen, aber nicht bei anderen eine Nachricht drucken möchten, müssen Sie diese Logik Ihrem Server hinzufügen. –

Verwandte Themen