2016-01-24 106 views
0

当我运行app.js,我得到这个错误:Node.js的自定义模块

MBPdiDaniele3:Desktop danielemartini$ node app.js 
events.js:141 
     throw er; // Unhandled 'error' event 
    ^

Error: connect ECONNREFUSED 127.0.0.1:8080 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14) 
MBPdiDaniele3:Desktop danielemartini$ 

下面的代码为make_request.js

var http = require('http'); 

var makeRequest = function(message) { 

    var options = { 
     host: 'localhost', port: 8080, path:'/', method: 'POST' 
    } 

    var request = http.request(options, function(response) { 
     response.on('data', function(data) { 
      console.log(data); 
     }); 
    }); 
    request.write(message); 
    request.end(); 
}; 
module.exports = makeRequest; 

下面的代码为app.js

var makeRequest = require('./make_request'); 

makeRequest("Here's looking at you, kid"); 
makeRequest("Hello, this is dog"); 
+2

而......你的问题是什么? – usandfriends

+1

也许这是因为您没有任何东西在端口8080上侦听。 – usandfriends

+0

确保没有其他服务正在运行端口8080(Tomcat或您的服务的早期版本) – xaviert

回答

1

有几种可能的原因:

  1. 没有服务在本地主机上运行:8080
  2. 服务8080运行其主动拒绝连接。

要查看正在运行什么,使用这些2个的命令之一(UNIX):

  • lsof -i :8080 -S
  • netstat -a | grep 8080

3 - 你正在运行的服务不会绑定到您的内部IP。

我在云服务器上遇到过几次问题,其中localhost/127.0.0.1无法识别。尝试使用机器的外部IP(并确保防火墙允许您发出请求),或强制您的服务绑定到所有接口。

希望它有帮助。

+0

这不是一个答案,这是猜测和一般调试指令 –

+0

@Jarrod_Roberson:这可能不是答案,但它是有益的,因此有用。 – chriskelly

+0

@JarrodRoberson不是帮助用户堆栈溢出?这个问题有三种可能的答案,并且遵循我的信息应该有助于OP解决他的问题。如果有的话,这个问题可能需要重写,包括'我试过这个和那个',因此删除了猜测元素。 – xShirase