node.js只响应一个html请求

时间:2011-09-09 14:50:35

标签: mysql node.js

我使用node.js和mysql模块编写一个简单的select语句。

问题是它只能响应一个请求,后续响应将为空。

我使用浏览器首次加载页面,它返回完整的结果,但浏览器仍在加载。发生了什么:

代码:

var server = http.createServer(function (request, response) {
      response.writeHead(200, {"Content-Type": "text/plain"});

      client.query('SELECT * FROM ' + tbl,
          function selectDb(err, results, fields) {
            if (err) {
              throw err;
            }

            for (var i in results){
              var result = results[i];
              response.write(result['CUSTOMERNAME']); // Writes to the web browser the value of test then a : to seperate values
            }

            response.end("END RESULT");

            client.end();
          }
      );

});

1 个答案:

答案 0 :(得分:2)

根据node-mysql文档(我假设您正在使用)找到here

client.end();

关闭mysql连接。

当你尝试另一个请求时,没有打开的连接,并且node-mysql没有进行任何连接池处理或自动重新连接,所有这些都由你决定。

如果你不介意在应用程序的生命周期内保持单个连接打开(不是最佳设计),你可以将client.end()移到连接处理程序之外。

否则,创建一个检查打开连接的小方法,或者创建一个连接池,请参阅this post以获取更多信息。