Обновите страницу node.js, вызывая ресурсы дважды?
У меня есть базовая настройка node.js, но я думаю, что что-то упустил.
мой main.js
:
var a = require('./another.js');
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200,
{
'Content-Type': 'text/html'
});
response.write(a.saysomething('Hi there!') + '<br />');
response.end();
}).listen(27182);
console.log('Server running at http://127.0.0.1:27182/');
мой another.js
:
exports.saysomething = function (str) {
console.log('in saysomething!');
return str + ' hey there!';
}
Проблема в том, что моя консоль выводит in saysomething!
дважды. Я что-то пропустил? Когда я обновляю страницу, я ожидаю только одного in saysomething!
,
2 ответа
Ваш браузер, вероятно, пытается получить favicon.ico в дополнение к URL, который вы нажимаете. Попробуйте просто выполнить команду в командной строке: curl http://127.0.0.1:27182/
Также вы можете добавить логирование для request.url
, Это покажет вам, какие URL запрашиваются.
Вот еще один способ понять проблему. Этот сервер узлов будет отслеживать все запросы и показывать их вам в браузере в формате JSON. Затем вы можете нажать F5 и посмотреть запросы, которые вы делаете.
var http = require("http");
var messages = [];
http.createServer(function(request, response) {
console.log("We got a hit @ " + new Date());
messages.push(request.url);
messages.push(request.headers);
response.writeHead(200, {"Content-Type": "text/plain"});
for ( var i = 0; i < messages.length; ++i ) {
response.write("\n\n" + JSON.stringify(messages[i]));
}
response.end();
}).listen(8888);
PS: Смотрите также этот дубликат для дополнительной информации nodejs - http.createServer, кажется, вызывает дважды