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!

您的浏览器可能试图获得favicon.ico除了你打的url。 尝试在命令行上执行命令: curl http://127.0.0.1:27182/

另外,你可以为request.url添加日志logging。 这将告诉你哪些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似乎调用两次