105 votes

Erreur Node.js : connecter ECONNREFUSED

Je suis nouveau sur node et je rencontre cette erreur sur un simple tutoriel.

Je suis sous OS X 10.8.2 et j'essaie de faire cela à partir de CodeRunner et du Terminal. J'ai également essayé de placer mon module dans le répertoire node_modules dossier.

Je peux dire qu'il s'agit d'un problème de connexion, mais je ne sais pas pourquoi ?

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;

58voto

user2957009 Points 762

Il y a de fortes chances que vous ayez des difficultés à faire mourir node.js lorsque le serveur que vous appelez refuse de se connecter. Essayez ceci :

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

Cela permet à votre serveur de continuer à fonctionner et vous donne également un endroit pour attacher le débogueur et rechercher un problème plus profond.

11voto

GrizzlyNetch Points 1314

Vous essayez de vous connecter à localhost:8080 ... est-ce qu'un service fonctionne sur votre localhost et sur ce port ? Si non, la connexion est refusée ce qui provoque cette erreur. Je vous suggère de vérifier d'abord si quelque chose est en cours d'exécution sur localhost:8080.

11voto

J'avais le même problème avec ghost et heroku.

heroku config:set NODE_ENV=production 

résolu !

Vérifiez votre configuration et l'environnement sur lequel le serveur fonctionne.

6voto

Andrew M. Points 81

Vous devez avoir un serveur fonctionnant sur le port 8080 lorsque vous exécutez le code ci-dessus qui renvoie simplement la requête par le biais de la réponse. Copiez le code ci-dessous dans un fichier séparé (disons 'server.js') et démarrez ce serveur en utilisant la commande node (node server.js). Vous pouvez ensuite exécuter séparément votre code ci-dessus (node app.js) à partir d'une ligne de commande distincte.

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

6voto

pashaplus Points 379

Parfois, cela peut se produire, s'il y a une connexion à la base de données dans votre code mais que vous n'avez pas encore démarré le serveur de base de données.

Dans mon cas, j'ai un bout de code pour me connecter à mongodb.

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

après avoir démarré le serveur mongodb avec la commande mongod cette erreur a disparu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X