2012-07-18 16 views

risposta

18

mi consiglia di utilizzare i open e error eventi per verificare se è possibile connettersi al Banca dati. Questo è un semplice esempio utilizzato in tutti i miei progetti per ricontrollare che sono connesso.

var mongoose = require('mongoose'); 

mongoose.connection.on('open', function (ref) { 
    console.log('Connected to mongo server.'); 
}); 
mongoose.connection.on('error', function (err) { 
    console.log('Could not connect to mongo server!'); 
    console.log(err); 
}); 

mongoose.connect('mongodb://localhost/mongodb'); 
+0

Sì, funziona meglio Ricordati solo di usare il punto e virgola ";" :) –

+1

Grazie per la risposta, è quello che mi serve :) – Charles

4

A quanto pare Mangusta non fa eccezione.

Così si può utilizzare il driver Mongo DB Native NodeJS:

Quindi, ecco cosa si può fare:

var mongoose = require('mongoose'); 

var Db = require('mongodb').Db, 
    Server = require('mongodb').Server; 

console.log(">> Connecting to mongodb on 127.0.0.1:27017"); 

var db = new Db('test', new Server("127.0.0.1", 27017, {})); 

db.open(function(err, db) { 
    console.log(">> Opening collection test"); 
    try { 
     db.collection('test', function(err, collection) { 
      console.log("dropped: "); 
      console.dir(collection); 
     }); 
    } 
    catch (err) { 
     if (!db) { 
      throw('MongoDB server connection error!'); 
     } 
     else { 
      throw err; 
     } 
    } 
}); 

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

Grazie per voi rispondere :) – Charles

20

Si può dire se mangusta è già collegato o meno, semplicemente controllando

mongoose.connection.readyState 
0 = no 
1 = yes 
+11

In realtà ci sono 4 stati diversi. Oltre ai due citati, c'è 2 = "connessione" e 3 = "disconnessione". Vedi qui http://mongoosejs.com/docs/api.html#connection_Connection-readyState – Risadinha

8

Il dritto in avanti funziona bene per me:

mongoose.Connection.STATES.connected === mongoose.connection.readyState

+0

Grazie! Ho cercato la costante. Questo è più pulito dell'uso == 1 – koga73

Problemi correlati