2011-07-13 12 views
60

mongooseが自分のDBに接続できない場合、どのようにエラー処理のコールバックを設定できますか?mongoose接続エラーコールバック

私は

connection.on('open', function() { ... }); 

を知っているが、

connection.on('error', function (err) { ... }); 

のようなものはありますか?

+3

この問題を抱えている人は、 'connection.on( 'error'、function(err){...});'が3.Xで実装されました。 – Nepoxx

答えて

104

あなたがコールバックでエラーを拾うことができます接続:

mongoose.connect('mongodb://localhost/dbname', function(err) { 
    if (err) throw err; 
}); 
+0

エラーがあってもサーバーを稼働させたい場合はどうすればよいですか?これまでに試したことがすべてエラーをスローし、プログラムを終了します。 –

+0

ここでエラーが発生した場合は、設定エラーが発生しているか、DBサーバーがダウンしている可能性があります。その場合は、とにかくアプリを続行できない可能性があります。いずれにしても予期しないエラーが発生した場合は、アプリを再起動することをお勧めします。それ以外の場合は不明な状態です。 – evilcelery

+2

@evilcelery mongooseのすべてのクエリはバッファされているので、dbに再接続するとすぐにすべてのクエリを実行する必要があります。これは問題なく不明な状態の原因であってはなりません。 – Andy

21

誰もが、この時に発生した場合、私は(3.4)を実行しているマングースのバージョンが問題に述べたように動作します。したがって、次のコードはエラーを返す可能性があります。

connection.on('error', function (err) { ... }); 
2

後期答えていますが、これを使用することができます実行しているサーバーを保持する場合:あなたが使用することができます

mongoose.connect('mongodb://localhost/dbname',function(err) { 
    if (err) 
     return console.error(err); 
}); 
29

そこに多くのマングースのコールバック、

// CONNECTION EVENTS 
 
// When successfully connected 
 
mongoose.connection.on('connected', function() { 
 
    console.log('Mongoose default connection open to ' + dbURI); 
 
}); 
 

 
// If the connection throws an error 
 
mongoose.connection.on('error',function (err) { 
 
    console.log('Mongoose default connection error: ' + err); 
 
}); 
 

 
// When the connection is disconnected 
 
mongoose.connection.on('disconnected', function() { 
 
    console.log('Mongoose default connection disconnected'); 
 
}); 
 

 
// If the Node process ends, close the Mongoose connection 
 
process.on('SIGINT', function() { 
 
    mongoose.connection.close(function() { 
 
    console.log('Mongoose default connection disconnected through app termination'); 
 
    process.exit(0); 
 
    }); 
 
});

詳細:http://theholmesoffice.com/mongoose-connection-best-practice/

関連する問題