2011-09-09 8 views
0

私は単純なselect文を書くためにnode.jsとmysqlモジュールを使います。node.js応答はただ1つのhtml要求

問題は1つの要求にしか応答できず、後続の応答は空になります。

初めてブラウザを使用してページを読み込むと、完全な結果が返されますが、ブラウザはまだ読み込み中です。何が起こる:

コード:

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(); 
      } 
    ); 

}); 

答えて

2

を(私はあなたが使用していると仮定)ノード-mysqlのドキュメントによるとhere

client.end(); 

は、MySQLの接続を閉じました。

別のリクエストを試みると、開いている接続がなく、node-mysqlは接続プールの処理や自動再接続を行わず、そのすべてがあなたに任せられます。

最高のデザインではなく、アプリケーションの存続期間中に1つの接続を開いたままにしておきたい場合は、接続ハンドラの外でそのclient.end()を移動することができます。

それ以外の場合は、開いている接続を確認するか、接続プールを確認する小さなメソッドを作成してください。詳しくは、this postを参照してください。

関連する問題