Javascript Node.js错误:连接EConrefused

Javascript Node.js错误:连接EConrefused,javascript,node.js,Javascript,Node.js,我是一个新的节点,在一个简单的教程中遇到了这个错误 我正在OSX10.8.2上尝试从CodeRunner和终端执行此操作。 我还尝试将我的模块放入node\u modules文件夹 我可以说这是某种连接问题,但我不知道为什么 events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: connect ECONNREFUSED at errnoExce

我是一个新的节点,在一个简单的教程中遇到了这个错误

我正在OSX10.8.2上尝试从CodeRunner和终端执行此操作。 我还尝试将我的模块放入
node\u modules
文件夹

我可以说这是某种连接问题,但我不知道为什么

events.js:71
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: connect ECONNREFUSED
    at errnoException (net.js:770:11)
    at Object.afterConnect [as oncomplete] (net.js:761:19)
app.js:

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

makeRequest("Here's looking at you, kid");
makeRequest("Hello, this is dog");
make_request.js:

var http = require('http');

var makeRequest = function(message) {

    //var message = "Here's looking at you, kid.";
    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;

当Node.js进程仍在运行并且试图再次启动服务器时,人们会遇到此错误。试试这个:

process.on('uncaughtException', function (err) {
    console.log(err);
}); 
ps aux| grep节点

这将打印以下内容:

user    7668  4.3  1.0  42060 10708 pts/1    Sl+  20:36   0:00 node server
user    7749  0.0  0.0   4384   832 pts/8    S+   20:37   0:00 grep --color=auto node

在这种情况下,进程将是pid 7668的进程。要杀死它并重新启动服务器,请运行
kill-9 7668

尝试连接到本地主机:8080。。。是否有任何服务正在本地主机和此端口上运行?否则,将拒绝连接,从而导致此错误。我建议先检查一下localhost:8080上是否有任何东西在运行。

当您调用的服务器拒绝连接时,您很可能正在与node.js死机作斗争。试试这个:

process.on('uncaughtException', function (err) {
    console.log(err);
}); 

这将使服务器保持运行,并为您提供一个连接调试器和查找更深层次问题的位置。

我对ghost和heroku也有同样的问题

heroku config:set NODE_ENV=production 
解决了


检查服务器运行的配置和环境。

在终端中启动mysql进行检查。使用下面的命令

mysql ctl启动


在我的例子中,它是有效的

当您运行上面的代码时,您需要在端口8080上运行一个服务器,该代码只是通过响应返回请求。将下面的代码复制到一个单独的文件(比如'server.js'),并使用node命令(node server.js)启动此服务器。然后,您可以从单独的命令行分别运行上面的代码(node app.js)

var http = require('http');

http.createServer(function(request, response){

    //The following code will print out the incoming request text
    request.pipe(response);

}).listen(8080, '127.0.0.1');

console.log('Listening on port 8080...');

如果代码中存在任何数据库连接,但尚未启动数据库服务器,则有时可能会发生这种情况

我是我的情况我有一些代码连接mongodb

mongoose.connect(“mongodb://localhost:27017/demoDb");


在我用命令mongod启动mongodb服务器后,此错误消失了未处理的“错误”事件
指的是未提供传递错误请求的功能。如果没有此事件,节点进程将以错误结束,而不是正常失败并提供实际反馈。您可以在
请求之前设置事件。写入
行以捕获任何问题:

request.on('error', function(err)
{
    console.log(err);
});
下面有更多的例子:


如果您在MEAN(Mongo Express AngularJS节点)堆栈上,请先运行mongod,此错误消息将消失。

从不同的命令行运行server.js,从不同的命令行运行client.js

出现类似问题,结果显示打印的侦听端口与实际不同。请求字符串或侦听函数中的键入可能会使目标服务器看起来不存在。

这不是问题所在。当他试图发出请求时,连接被拒绝。我也在
https://c9.io/
并得到相同的错误。是否打开以接收我们的输出?使用服务定义的端口和主机的节点服务器上存在相同问题。如果您确实知道这里发生了什么,请发布一个真正的解决方案,而不是问题“我是node的新手”中所述的含糊不清的评论。@ian,您的cod中没有任何地方是在创建服务器。那么,您试图连接的8080端口上运行的是什么呢?对于任何未来的读者,我试图向PHP服务器发出API请求,但我的请求端口没有设置为80。一旦更改了http请求,就可以正常工作。在发生未捕获的异常后保持服务器运行是一件危险的事情。您不知道异常是否使服务器处于预期状态。杀掉服务器并让另一个进程重新启动它(显然是记录异常)要安全得多。一般来说,在黑暗中捕获所有异常不是一个好主意。看一看,这取决于你想完成什么。我正在编写一个监控应用程序,在这个应用程序中,跟上和保持移动是至关重要的。看来OP只是在努力找出问题所在。所有其他答案都是关于可能导致此错误的特定问题。作为调试步骤,在深入到真正的问题之前,上述步骤几乎总是必需的。我还觉得奇怪的是,你认为你的服务器会因为一次故障而死亡,导致所有其他客户端调用开始失败?你能解释一下为什么这会解决这个问题吗?我使用了heroku config:set NPM_config_PRODUCTION=false。我想知道,经过2天的搜索之后,我看到了你的评论,这让我节省了一天的时间