1

私は Node.js のフロントでは少し新しいですが、今のところ素晴らしいです。ノード (/w express) をローカルで実行しているときに小さな問題が発生しました。10 番目以降のすべてのリクエストがハングし、Chrome 検査ネットワークで保留中としてマークされます。

モジュールに関しては、ミドルウェアの少ない、エクスプレス、ジェイド、および MySQL を使用しており、SQL クエリを 1 つだけ実行します (mysql.createPool を使用)。このリクエストがまだ保留中になっているのはなぜですか?どうすれば修正できますか?

私はノードが初めてなので、すべてを試したかどうかわからないので、助けていただければ幸いです!

4

1 に答える 1

4

プールから取得している MySQL 接続を解放していないようです。そうしないと、プールは空き接続を使い果たし、いずれかが使用可能になるのを待ち始めます (そして、それまでは要求を停止させます)。

したがって、コードは次のようになります。

var pool = mysql.createPool(...);
...
// in your request handler:
pool.getConnection(function(err, connection) {
  if (err) ...handle error...;
  connection.query(function(err, results) {
    // release connection
    connection.release();
    // handle results
    ...
    // send back a response
    res.send(...);
  });
});
于 2013-10-16T07:40:44.503 に答える