Javascript Node.js错误:连接EConrefused
我是一个新的节点,在一个简单的教程中遇到了这个错误 我正在OSX10.8.2上尝试从CodeRunner和终端执行此操作。 我还尝试将我的模块放入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
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天的搜索之后,我看到了你的评论,这让我节省了一天的时间