我在 Node.js 方面有点新手,现在它很棒。我在本地运行节点(/w express)时遇到了一个小问题——第 10 个请求之后的每个请求都挂起,并在 Chrome Inspect 网络中标记为待处理。
至于模块,我使用的是 less-middleware、express、jade 和 MySQL,我只做一个 SQL 查询(使用 mysql.createPool)。为什么此请求仍处于待处理状态,我该如何解决?
由于我是 Node 的新手,我不确定我是否已经尝试了所有方法,因此我们将不胜感激!
我在 Node.js 方面有点新手,现在它很棒。我在本地运行节点(/w express)时遇到了一个小问题——第 10 个请求之后的每个请求都挂起,并在 Chrome Inspect 网络中标记为待处理。
至于模块,我使用的是 less-middleware、express、jade 和 MySQL,我只做一个 SQL 查询(使用 mysql.createPool)。为什么此请求仍处于待处理状态,我该如何解决?
由于我是 Node 的新手,我不确定我是否已经尝试了所有方法,因此我们将不胜感激!
听起来您没有释放从池中返回的 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(...);
});
});