Poniżej znajduje się przykład serwera WWW z dokumentacji, z dodatkowym licznikiem. Drukuje licznik do konsoli, gdy klient/przeglądarka żąda strony.Serwer Nodejs wywołujący requestListener serwera dwa razy po załadowaniu strony
Jednak jest wywoływana dwa razy na żądanie przeglądarki. Czemu?
To co by się spodziewać by się stało:
browser : Hello World 1
console : Counter 1
[reload page]
browser : Hello World 2
console : Counter 2
ale to się dzieje:
browser : Hello World 1
console : Counter 1
Counter 2
[reload page]
browser : Hello World 3
console : Counter 3
Counter 4
uruchomić kod za pomocą wiersza polecenia
$ node example.js
Oto kod :
var
http = require('http'),
counter = 0,
sys = require('util');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
counter++;
res.end('Hello World ' + counter + '\n');
sys.puts('Counter ' + counter);
}).listen(8000, "");
Po raz pierwszy wpadłem to mam podobny problem, ale na kolejnych przebiegów to działa zgodnie z oczekiwaniami. –
Być może to, jak ja go używam. Używam tylko wiersza poleceń "node example.js". Jak to działa? – Garrows
Zrobiłem to z linii poleceń, tak jak ty –