2017-12-24 11 views
0

の取り扱い。 しかし、5回再接続すると、エラーが発生した場合、プロセスは終了します。私はマングース4.13.7私はモンゴに接続したい</p> <p>を使用していますが、エラーが発生した場合、私は再接続するマングース外し

これはコードです:

var count = 0; 
handleDisconnect(); 
function handleDisconnect(){ 
    count++; 
    console.log('Trying to connect to mongo. Attempt : ' + count); 
    mongoose.connect(config.mongo.uri,{useMongoClient:true}); 
    mongoose.connection.on('error',(error)=>{ 
     if (count >= 5){ 
      console.log('Mongo ERROR'); 
      console.error(error); 
      process.exit(1); 
     } 
     else{ 
      setTimeout(handleDisconnect,1000); 
     } 
    }); 
    mongoose.connection.on('open',()=>{ 
     console.log('Connected to mongo at ' + Date.now()); 
    }); 
} 

私も、コードの出力を掲載しています。試行回数が5を超えていることを私は理解していませんか?メモリリーク警告とノード:6804エラーメッセージもあります。私は間違って何をしていますか?

Output of the code

答えて

0

あなたがerrorイベントのイベントが発せられるたびに、イベントリスナーを付けます。これによりメモリリーク警告が発生し、コールバック関数がイベントごとに複数回実行されます。イベントハンドラをhandleDisconnect()関数内に追加しないでください。

例:

function handleDisconnect(mongoError) { 
    // check error reason, increment counters, check if errors limit reached 
} 

mongoose.connection.on('error', handleDisconnect); 
関連する問題