1

我在 Node.js 方面有点新手,现在它很棒。我在本地运行节点(/w express)时遇到了一个小问题——第 10 个请求之后的每个请求都挂起,并在 Chrome Inspect 网络中标记为待处理。

至于模块,我使用的是 less-middleware、express、jade 和 MySQL,我只做一个 SQL 查询(使用 mysql.createPool)。为什么此请求仍处于待处理状态,我该如何解决?

由于我是 Node 的新手,我不确定我是否已经尝试了所有方法,因此我们将不胜感激!

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 回答