Node.js错误:连接ECONNREFUSED
我是新来的节点和运行到一个简单的教程这个错误。
我在OS X 10.8.2上从CodeRunner和Terminal上尝试这个。 我也尝试把我的模块在node_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); });
这使您的服务器运行,也给你一个地方附加debugging器,并寻找更深的问题。
您正在尝试连接到本地主机:8080 …是否在您的本地主机和此端口上运行的任何服务? 如果没有,连接被拒绝导致这个错误。 我会build议检查是否有什么东西在localhost:8080上运行。
我和ghost和heroku有同样的问题。
heroku config:set NODE_ENV=production
解决了!
检查你的configuration和env服务器正在运行。
有时可能会发生,如果您的代码中有任何数据库连接,但尚未启动数据库服务器。
我的情况我有一些代码连接与MongoDB
mongoose.connect("mongodb://localhost:27017/demoDb");
在我用mongod命令启动mongodb服务器之后,这个错误消失了
运行上面的代码时,需要在端口8080上运行服务器,只需通过响应返回请求即可。 将下面的代码复制到一个单独的文件(比如'server.js'),并使用node命令(node server.js)启动这个服务器。 然后,您可以从单独的命令行单独运行上面的代码(节点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...');
检查在terminal启动mysql。 使用下面的命令
mysql-ctl start
在我的情况下,它的工作
当Node.js进程仍在运行并且他们试图再次启动服务器时,人们遇到此错误。 尝试这个:
ps aux | grep node
这将打印一些东西:
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
。
Unhandled 'error' event
是指不提供函数来传递错误的请求。 如果没有这个事件,节点进程将以错误结束,而不是优雅地失败并提供实际的反馈。 您可以在request.write
行之前设置事件来捕获任何问题:
request.on('error', function(err) { console.log(err); });
下面更多的例子:
https://nodejs.org/api/http.html#http_http_request_options_callback
如果您使用的是MEAN(Mongo-Express-AngularJS-Node)堆栈,请首先运行mongod,此错误消息将消失。