2016-12-22 6 views
1

この問題を私自身で解決しようとしましたが、問題に適した修正が見つかりませんでした。EventEmiterなしでEventEmitterのメモリリークが検出されました

私はこの方法を持っている:

handle_database = function(callback, req, res) { 

pool.getConnection(function(err,connection){ 
    if (err) { 
     res.json({"code" : 100, "status" : "Error in connection database"}); 
     return; 
    } 

    connection.query("select * from `atable`",function(err,rows){ 
     connection.release(); 
     if(!err) { 
      callback(rows); 
     } 
    }); 

    connection.on('error', function(err) { 
     res.json({"code" : 100, "status" : "Error in connection database"}); 
     return; 
    }); 
}); 
} 

このメソッドは、このように私のroutes.jsに使用されている:私は行で11回このページを更新すると

router.get('/', function(req, res){ 
    db.getUsers(function (data) { 
     res.render('pages/index',{users: data, title: 'title'}); 
    }, req, res); 

}); 

は、私は次の取得警告:

(ノード:11780)警告:EventEmitterのメモリリークが検出されました。 11のエラーリスナーが追加されました。制限を増やすにはemitter.setMaxListeners()を使用してください

しかし、私はこれを修正する方法が見つからないか、スマートなアイデアを0に設定していますか?

+0

をあなたがDBに接続し、管理するためには何を使っている:

はちょうどここにそれが見ることができる方法ですconnection.query

pool.getConnection

  • にエラー

    • をチェックプール? –

  • +0

    'VARプール= mysql.createPool({ connectionLimit:10、 ホスト: 'ローカルホスト'、 ユーザ: 'ルート'、 パスワード: 'PW' データベース 'DB' デバッグ:偽、 } ); ' – R4LPH

    +0

    これは何のプラグインですか?ノード内のデータベースにアクセスするライブラリは数十種類あります。 mysqljs/mysqlを使用していますか? –

    答えて

    1

    クエリを発行するたびに、接続にエラーハンドラを追加しないでください。接続はプールされ、毎回新しい接続を取得しません。あなたのケースでは、サイズ10のプールで、11回目の呼び出しで接続を再使用します。これは、警告がトリガーされたときです。

    handle_database = function(callback, req, res) { 
        pool.getConnection(function(err,connection){ 
         if (err) { 
          res.json({"code" : 100, "status" : "Error in connection database"}); 
          return; 
         } 
    
         connection.query("select * from `atable`",function(err,rows){ 
          connection.release(); 
          if(err) { 
           res.json({"code" : whatever, "status" : "Error in querying database"}); 
           return; 
          } 
          callback(rows); 
    
         }); 
        }); 
    } 
    
    +0

    ありがとうございます。これはうまくいった! – R4LPH

    関連する問題