2015-03-27 6 views
11

Ho un problema per connettere l'applicazione socketIO (realizzata con nodeJS) con il mio mongoDB. provo a connettermi su un server remoto, ma la sua mi tiri erroreErrore di connessione NodeJS con mongoDB

Ecco il mio codice (non c'è nessun utente/password impostata nel MongoDB):

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(); 
    }); 

Ed ecco quando lancio il server e mi ha cercato di lanciare l'applicazione in un navigatore: Server in ascolto sulla porta 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) 

risposta

13

Questo errore viene restituito per diversi errori come:

  • server non è in esecuzione
  • è necessario autenticare l'utente
  • questo database non esiste
  • porto MongoDB non è la porta di default

Controllare questo. Normalmente il vostro problema è solo una di queste cause

+0

Grazie, come è possibile intercettare l'errore e stampare qualcosa di utile? –

+0

Io uso mangusta nel mio progetto nodeJS ma il registro degli errori è normalmente lo stesso. La libreria MongoDB funziona con i callback. In NodeJS, non puoi catturare la richiamata con un try/catch standard. – throrin19

+0

Vedo, beh, se qualcuno incontra questo errore nella mia app, si spera che lo cerchino e lo trovino :) –

0

Una delle soluzioni è quella di cambiare 127.0.0.1 IP pubblico o qualunque sia il router dotato nel file di configurazione MongoDB si trova in/etc

7

Per far funzionare tutto questo voi apportare le modifiche in /etc/mongod.conf

commento bind_ip = 127.0.0.1 Come se questa riga non fosse commentata Ascolta solo l'interfaccia locale.

+1

stranamente, questo ha funzionato – Jona

+0

Non posso credere che questo non è menzionato in una posizione ovvia .... ridicolo. Grazie per la risposta. – Sam

0

Ci potrebbero essere alcuni motivi per l'errore ECONNREFUSED. Punti di controllo

  • Verificare se la porta non sta servendo nessun altro processo.
  • Controlla se il tuo iPod funziona.
  • Controlla se localHost è configurato correttamente con il tuo ID oppure no.

per di più si può vedere this