2015-03-27 13 views
11

Ich habe ein Problem, meine socketIO Anwendung (hergestellt mit nodeJS) mit meinem mongoDB zu verbinden. Ich versuche auf einem Remote-Server zu verbinden, aber sein wirft mir FehlerNodeJS Verbindungsfehler mit MongoDB

Hier ist mein Code (es gibt keinen Benutzer/Passwort im mongoDB eingestellt):

var url = "mongodb://192.168.1.5:27017/DB" 

    MongoClient.connect(url, function(err, db) { 
      console.log("test") 
      if (!err) { 
        console.log("test"); 
      } 
      else { 
        console.dir(err) 
      throw err 
      } 
    // db.close(); 
    }); 

Und hier ist, wenn ich den Server und ich starte versucht, die App in einem Navigator zu starten: Server hört auf Port 80:

{ [MongoError: connect ECONNREFUSED] name: 'MongoError', message: 'connect ECONNREFUSED' } 
/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:228 
     process.nextTick(function() { throw err; }) 
              ^
Error 
    at Error.MongoError (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:13:17) 
    at Server.destroy (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:629:47) 
    at Server.close (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:344:17) 
    at Db.close (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/db.js:267:19) 
    at /root/fys-realtime/examples/chat/node_modules/mongodb/lib/db.js:196:12 
    at null.<anonymous> (/root/fys-realtime/examples/chat/node_modules/mongodb/lib/server.js:226:9) 
    at g (events.js:180:16) 
    at emit (events.js:98:17) 
    at null.<anonymous> (/root/fys-realtime/examples/chat/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:238:68) 
    at g (events.js:180:16) 

Antwort

13

Dieser Fehler wird zurückgegeben mehrere Fehler wie:

  • Server nicht ausgeführt wird
  • Sie Benutzer
  • diese Datenbank authentifizieren müssen nicht existiert
  • der mongodb Port ist nicht der Standard-Port

prüfen diese. Normaly Ihr Problem ist nur einer dieser Ursachen

+0

Danke sehen können, wie kann man den Fehler und Druck etwas Nützliches zu fangen? –

+0

Ich benutze Mungo in meinem Projekt NodeJS aber das Fehlerprotokoll ist normalerweise das gleiche. Die MongoDB-Bibliothek arbeitet mit Callbacks. In NodeJS können Sie Callback nicht mit einem Standard try/catch abfangen. – throrin19

+0

Ich sehe, gut, wenn jemand in diesen Fehler in meiner App läuft, hoffentlich googeln sie es und finden Sie das :) –

0

Eine der Lösungen ist 127.0.0.1 auf öffentliche IP zu ändern oder was auch immer Ihnen der Router in mongodb Konfigurationsdatei in/etc befindet bereitgestellt

7

Dazu Sie arbeiten müssen die Änderungen in /etc/mongod.conf vornehmen

kommentieren bind_ip = 127.0.0.1 Als ob diese Zeile nicht kommentiert, Hören Sie nur lokale Schnittstelle.

+1

seltsam, das hat funktioniert – Jona

+0

Ich kann nicht glauben, dass dies nicht in einer offensichtlichen Lage erwähnt wird .... lächerlich. Danke für die Antwort. – Sam

0

Es könnte einige Gründe für ECONNREFUSED Fehler geben. Checkpunkte

  • Überprüfen Sie, ob Ihr Port keinen anderen Prozess bedient.
  • Überprüfen Sie, ob Ihr Mongod läuft.
  • Überprüfen Sie, ob Sie localhost korrekt mit Ihrer ID konfiguriert ist oder nicht.

für mehr Sie this