Node.js Erreur: connectez ECONNREFUSED

Je suis nouveau sur le nœud et je suis entré dans cette erreur sur un simple tutoriel.

Je suis sur OS X 10.8.2 en essayant ceci depuis CodeRunner et le terminal. J'ai également essayé de mettre mon module dans le dossier node_modules .

Je peux dire que c'est 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; 

Les chances sont que vous vous débattez avec le node.js qui meurt chaque fois que le serveur que vous appelez refuse de se connecter. Essaye ça:

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

Cela maintient votre serveur en cours d'exécution et vous donne également une place pour attacher le débogueur et chercher un problème plus profond.

Vous essayez de vous connecter à localhost: 8080 … est-ce qu'un service s'exécute sur votre localhost et sur ce port? Sinon, la connexion est refusée, ce qui provoque cette erreur. Je suggérerais de vérifier s'il y a quelque chose en cours sur localhost: 8080 en premier.

J'avais le même problème avec le fantôme et l'heroku.

 heroku config:set NODE_ENV=production 

L'a résolu

Vérifiez votre config et env sur lequel le serveur fonctionne.

Vous devez avoir un serveur en cours d'exécution sur le port 8080 lorsque vous exécutez le code ci-dessus qui renvoie simplement la demande à la réponse. Copiez le code ci-dessous dans un fichier distinct (disons 'server.js') et démarrez ce serveur à l'aide de 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...'); 

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

Mon cas, j'ai un code pour me connecter avec le mongodb

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

Après avoir commencé le serveur mongodb avec la commande mongod, cette erreur est passée

Vérifiez avec le démarrage de mysql dans le terminal. Utilisez la commande ci-dessous

mysql-ctl start

Dans mon cas, c'est travaillé

Les personnes se heurtent à cette erreur lorsque le processus Node.js est toujours en cours d'exécution et tentent de recommencer le serveur. Essaye ça:

ps aux | grep node

Cela va imprimer quelque chose dans le sens de:

 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 

Dans ce cas, le processus sera celui avec le pid 7668. Pour le tuer et redémarrer le serveur, exécutez kill -9 7668 .

L' Unhandled 'error' event se réfère ne fournissant pas une fonction à la demande pour passer des erreurs. Sans cet événement, le processus du noeud se termine par l'erreur au lieu d'échouer gracieusement et en fournissant des commentaires réels. Vous pouvez définir l'événement juste avant la ligne request.write pour détecter tout problème:

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

Plus d'exemples ci-dessous:

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

Si vous êtes sur la pile MEAN (Mongo-Express-AngularJS-Node), exécutez mongod en premier, et ce message d'erreur disparaîtra.