1
mongo接続プールでデーモンを実行しています。それは日のために細かい動作しますが、最終的にそれがクラッシュし、後続のすべての要求はこのエラーを取得します。MongoErrorの適切な処理方法:サーバーインスタンスプールが破損しました
MongoError:サーバインスタンスプールが破壊された
コードは次のようになります。
var MongoClient = require('mongodb').MongoClient;
var express = require('express');
var app = express();
MongoClient.connect(config.mongo.url, function(err, db) {
app.use('/', function(req, res, next) {
db.collection('somecollection').find({}).toArray(function(err, result) {
console.log(result);
});
})
var server = require('http').Server(app);
server.listen(config.worker.port, function() {
var address = server.address();
logger.info({
address: address.address,
port: address.port
}, 'New Worker created');
});
});
プロセスの修正を再起動問題はありますが、アプリケーションをどうにかしてエレガントに再接続し、そこに「db」オブジェクトをリセットしたいと思います。
標準のドライバでイベントを使って動作させるかどうかを試してみます。唯一の候補は次のようです:http://mongodb.github.io/node-mongodb-native/2.2/api/Db.html#event:error –
@phraktalこのイベントを聞くことができましたか?私はドキュメントを見ても、ネイティブドライバのエラーを聞く方法はまだ理解できません。アドバイス、ありがとう:) – chaintng