ECONNREFUSED erreur lors de la connexion de mongodb node.js
Je sais que je suis en train de faire quelques très stupide et noobish, mais je suis en espérant que quelqu'un peut m'aider à configurer une base de connexion de base de données dans mongodb, à partir de node.js sur un mac.
J'ai installé mongodb à l'aide de homebrew, semble avoir très bien fonctionné. J'ai commencé le serveur (mongod) comme localement de l'utilisateur connecté, et a ouvert un deuxième terminal et a confirmé que je peux y connecter en utilisant mongo. Quand je lance mongo, je reçois le message "connexion: localhost:27017/test", suivie par une invite de commande. A couru quelques commandes dans le shell mongo tout semble être d'y travailler. Gauche les deux terminaux ouverts et en cours d'exécution.
J'ai également confirmé que je peux arriver à l'interface web en localhost:28017.
J'ai installé node.js et ajout de la mangouste paquet. Maintenant, tentez de vous connecter à l'aide d'un super simple node.js application (également en cours d'exécution au niveau le plus local de l'utilisateur connecté):
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
Je reçois l'erreur suivante
events.js:72
throw er; //Unhandled 'error' event
^
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
Cogner ma tête contre le mur en essayant d'obtenir quelque chose de si simple à travailler. Ce qui me manque?
Edit: Voici les logs de mongod. Comme vous pouvez le voir j'ai essayé plusieurs fois et ils sont tous à défaut plutôt instantanément:
Thu Dec 5 08:19:43.700 [initandlisten] MongoDB starting : pid=14412 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=mobadmins-MacBook-Pro-3.local
08:19:43.700 [initandlisten] db version v2.4.8
08:19:43.700 [initandlisten] git version: nogitversion
08:19:43.700 [initandlisten] build info: Darwin mobadmins-MacBook-Pro-3.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May 1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
08:19:43.700 [initandlisten] allocator: tcmalloc
08:19:43.700 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb", logappend: "true", logpath: "/usr/local/var/log/mongodb/mongo.log", rest: true }
08:19:43.700 [initandlisten] journal dir=/usr/local/var/mongodb/journal
08:19:43.700 [initandlisten] recover : no journal files present, no recovery needed
08:19:43.729 [websvr] admin web console waiting for connections on port 28017
08:19:43.729 [initandlisten] waiting for connections on port 27017
08:22:34.561 [initandlisten] connection accepted from 127.0.0.1:52160 #3 (1 connection now open)
08:22:34.563 [conn3] recv(): message len 1124073472 is too large. Max is 48000000
08:22:34.563 [conn3] end connection 127.0.0.1:52160 (0 connections now open)
08:24:41.298 [initandlisten] connection accepted from 127.0.0.1:52166 #4 (1 connection now open)
08:24:41.304 [conn4] end connection 127.0.0.1:52166 (0 connections now open)
08:25:06.938 [initandlisten] connection accepted from 127.0.0.1:52168 #5 (1 connection now open)
08:25:06.943 [conn5] end connection 127.0.0.1:52168 (0 connections now open)
08:25:18.220 [initandlisten] connection accepted from 127.0.0.1:52172 #6 (1 connection now open)
08:25:18.225 [conn6] end connection 127.0.0.1:52172 (0 connections now open)
08:25:38.811 [initandlisten] connection accepted from 127.0.0.1:52175 #7 (1 connection now open)
08:25:38.816 [conn7] end connection 127.0.0.1:52175 (0 connections now open)
- Essayer de passer le port par défaut dans l'URL de connexion: "mongodb://localhost:27017/test"
- Il peut-être un conflit de port problème.Si nous essayons de l'exécution d'un nœud de serveur avec une deuxième fois avec un même port la même erreur viendra
- De bonnes idées à la fois. Cependant j'ai essayé de débrancher toutes les connexions existantes à la mongodb et en ajoutant le port en vain.
- Étant donné que mongod est en cours d'exécution et je peux me connecter à l'aide de mongo, ça sent un certain type de panne dans mon exemple de node.js. Peut-être une réinstallation pourrait aider?
Vous devez vous connecter pour publier un commentaire.
ECONNREFUSED erreur
Il y a quelques raisons de cette erreur dans le nœud :
Votre port est déjà servir de service de sorte qu'il refusera votre connexion.
aller à la ligne de commande et d'obtenir le pid en utilisant la commande suivante
$ lsof -i:port_number
Maintenant kill pid en utilisant
$ kill -9 pid(which you will get by above command)
Votre serveur n'est pas en cours d'exécution par exemple, dans ce cas, veuillez vérifier votre mangouste serveur est en cours d'exécution ou de l'exécution en utilisant la commande suivante.
$ mongod
Il y a aussi de la possibilité de votre
localhost
n'est pas configuré correctement, utilisez donc127.0.0.1:27017
à la place de localhost.OK, c'était un autre cas de ne pas être vraiment à venir dans les infos que j'ai posté ci-dessus. Mon node.js app était très simple, mais j'ai été y compris un autre couple de lignes dans mon node.js code qui, apparemment, la cause de ce problème.
Plus précisément, j'ai eu une autre variable déclarée qui en appelle d'autres codes qui ont fait une base de données distincte appel à l'aide incorrect db info. C'est pourquoi, lors de l'utilisation de Xinzz du code, le journal de la console d'erreur ne semble pas changer. Il n'était pas réellement la mangouste.commande de connexion qui jetait l'erreur!
Leçon, et de localiser le problème et commentaire sans rapport avec code! Désolé les gars, je savais que c'était à moi d'être muet.
Utiliser ce code pour l'installation de votre connexion mongodb:
Assurez-vous que mongod est en cours d'exécution pendant que vous démarrez le serveur. Êtes-vous d'utiliser Express ou tout simplement une node.js le serveur? Quel est le message d'erreur que vous obtenez avec le code ci-dessus?
très étrange, mais dans mon cas, je passe de connexion wifi...
J'utilise un réseau wifi public et de passer à mon téléphone connexion
J'ai eu le même problème. Il a été résolu en exécutant le même code dans Console Administrateur.
J'ai dû faire face à la même question lors de l'écriture d'un simple à l'aide de l'api rest node.js
finalement découvert que c'était dû à wifi blocage et des raisons de sécurité .
essayer une fois la connexion à l'aide de votre hotspot mobile .
si c'est la raison pour laquelle il va être résolus immédiatement.
parfois, vous avez besoin de vérifier la légitimité de l'IP, pare-feu, redirection de port, etc, si votre base de données cible est dans d'autres machines.
J'ai eu le même problème, je n'ai fait ajouter un
setTimeout
d'environ 10 secondes avant d'essayer de se connecter à l'Mongo serveur, et il a résolu le problème tout de suite. Je ne sais pas pourquoi j'ai dû ajouter un retard, mais cela a fonctionné...J'ai eu le même problème. Ce que j'ai fait est d'exécuter
mongodb
commande dans un autre terminal. Ensuite, exécuter mon application dans un autre onglet. Cela a résolu mon problème. Cependant, je suis d'essayer d'autres solution comme la création d'un script à exécutermongodb
avant la connexion est faite.