Node/Express 待处理请求

pro*_*ype 2 javascript performance node.js express node-mysql

我对 Node.js 还很陌生,目前它非常棒。我在本地运行节点 (/w express) 时遇到了一个小问题 - 第 10 个请求之后的每个请求都会挂起,并在 Chrome 检查网络中标记为待处理。

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

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

rob*_*lep 5

听起来您没有释放从池中恢复的 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(...);
  });
});
Run Code Online (Sandbox Code Playgroud)