Node.js-fout: verbind ECONNREFUSED

Ik ben nieuw bij node en kom deze fout tegen in een eenvoudige tutorial.

Ik gebruik OS X 10.8.2 en probeer dit vanuit CodeRunner en de Terminal.
Ik heb ook geprobeerd mijn module in de map node_modules te plaatsen.

Ik zie dat dit een verbindingsprobleem is, maar ik heb geen idee waarom?

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;

Antwoord 1, autoriteit 100%

De kans is groot dat u worstelt met het afsterven van node.js wanneer de server die u belt, weigert verbinding te maken. Probeer dit:

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

Dit houdt uw server draaiende en geeft u ook een plaats om de debugger te koppelen en een dieper probleem te zoeken.


Antwoord 2, autoriteit 20%

Ik had hetzelfde probleem met geest en heroku.

heroku config:set NODE_ENV=production 

het is opgelost!

Controleer uw configuratie en omgeving waarop de server draait.


Antwoord 3, autoriteit 16%

U probeert verbinding te maken met localhost:8080 … draait er een service op uw localhost en op deze poort? Als dit niet het geval is, wordt de verbinding geweigerd, wat deze fout veroorzaakt. Ik zou willen voorstellen om eerst te controleren of er iets draait op localhost:8080.


Antwoord 4, autoriteit 11%

Je moet een server hebben die draait op poort 8080 wanneer je de bovenstaande code uitvoert die het verzoek eenvoudig terugstuurt via het antwoord. Kopieer onderstaande code naar een apart bestand (zeg ‘server.js’) en start deze server met het node commando (node ​​server.js). U kunt uw bovenstaande code (node ​​app.js) dan afzonderlijk uitvoeren vanaf een afzonderlijke opdrachtregel.

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...');

Antwoord 5, autoriteit 11%

Soms kan het voorkomen als er een databaseverbinding in uw code is, maar u de databaseserver nog niet hebt gestart.

In mijn geval heb ik een stukje code om verbinding te maken met mongodb

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

nadat ik de mongodb-server heb gestart met het commando mongod is deze fout verdwenen


Antwoord 6, autoriteit 7%

Als je op de MEAN-stack (Mongo-Express-AngularJS-Node) zit, voer dan eerst mongod uit en deze foutmelding verdwijnt.


Antwoord 7, autoriteit 2%

Mensen komen deze fout tegen wanneer het Node.js-proces nog steeds actief is en ze proberen de server opnieuw te starten. Probeer dit:

ps aux | grep node

Hiermee wordt iets afgedrukt in de trant van:

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

In dit geval is het proces dat met de pid 7668. Om het te doden en de server opnieuw op te starten, voer je kill -9 7668 uit.


Antwoord 8, autoriteit 2%

Controleer met het starten van mysql in terminal. Gebruik onderstaande opdracht

mysql-ctl start

In mijn geval werkte het


Antwoord 9

De Unhandled 'error' event verwijst naar het niet verstrekken van een functie aan het verzoek om fouten door te geven. Zonder deze gebeurtenis eindigt het knooppuntproces met de fout in plaats van gracieus te falen en daadwerkelijke feedback te geven. Je kunt de gebeurtenis net voor de regel request.write instellen om eventuele problemen op te vangen:

request.on('error', function(err)
{
    console.log(err);
});

Meer voorbeelden hieronder:

https://nodejs.org/api/http.html#http_http_request_options_callback


Antwoord 10

Voer server.js uit vanaf een andere opdrachtregel en client.js vanaf een andere opdrachtregel


Antwoord 11

Had een soortgelijk probleem, het bleek dat de afgedrukte luisterpoort anders was dan hij in werkelijkheid was. Typfouten in de verzoekreeks of luisterfunctie kunnen ervoor zorgen dat de doelserver niet lijkt te bestaan.


Antwoord 12

ECONNREFUSED-fout betekent dat er geen verbinding kon worden gemaakt met de doelservice (in uw geval localhost:8080). Controleer of uw service op poort 8080 draait.

Raadpleeg deze doc voor meer informatie over node.js-fouten.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

four × five =

Other episodes