node.js中是否可以重新连接mysql数据库

node.js中是否可以重新连接mysql数据库,mysql,node.js,reconnect,Mysql,Node.js,Reconnect,我是node.js的新手。我只是想知道node.js中是否可以重新连接数据库(mysql) 我编写了以下代码,以便在数据库关闭几秒钟后建立连接: var http = require("http"); var mysql = require('mysql'); var trn_nbr=""; var amount1=""; var db_config = { host : 'localhost', user : 'root', password : '', da

我是node.js的新手。我只是想知道node.js中是否可以重新连接数据库(mysql)

我编写了以下代码,以便在数据库关闭几秒钟后建立连接:

var http = require("http");
var mysql = require('mysql');
var trn_nbr="";
var amount1=""; 
var db_config = {
    host : 'localhost',
    user : 'root',
    password : '',
    database: 'realmoney'
};

var connection;

function handleDisconnect() {  
  connection = mysql.createConnection(db_config); 
  connection.connect(function(err) 
  {                                                             
    if(err) 
    {                                                           
      console.log('error when connecting to db:', err);
      //setTimeout(handleDisconnect, 10000); 
      handleDisconnect();                     
    } 
    else
    { 
        console.log("Now Connected");
        connection = mysql.createConnection(db_config);
        for (var i=0; i<1000; i++)
        {  
            connection.query("select tran_nbr,tran_amount from tranlog",  function(err, rows)
            { 
                if(err) 
                {
                    if (err.code !== "PROTOCOL_CONNECTION_LOST")
                        throw err;
                    else
                    {
                        console.log('query error when connecting to db:', err);
                        //setTimeout(handleDisconnect, 10000); 
                        handleDisconnect();
                    }                               
                }
                else
                {
                    tran_nbr = rows[0].tran_nbr;
                    amount1 = rows[0].tran_amount;
                    console.log("tran_nbr:",tran_nbr);
                    console.log("Amount:",amount1);
                    //sleep.sleep(5);//sleep for 5 seconds
                }
            })           
        }
    }                                                        
  });                                                           

  connection.on('error', function(err) {
    console.log('db error', err);
    if(err.code === 'PROTOCOL_CONNECTION_LOST')
    { 
      handleDisconnect();                        
    } 
    else 
    {                                      
      throw err;                                  
    }
  });
}

handleDisconnect();
我已经在服务器上安装了connectionpool模块。我正在Linux服务器上运行node.js代码。
我可以在mysql数据库关闭几秒钟后再重新连接它,而不重新启动node.js中的应用程序吗(var i=0;i@DanFromGermany-这行代码仅用于测试。我需要检查在查询执行期间数据库何时断开连接,我们如何管理itI。我将使用一个连接,而不是一个连接,这样,如果一个连接断开,您就可以快速从池中获取新连接。@DanFromGermany-谢谢您的评论。您有samp吗连接池的le代码,这对我有帮助吗?或者我如何修改我的代码以实现数据库重新连接的连接池我已经链接了它:
var mysql = require('mysql');
var pool  = mysql.createPool({
    host : 'localhost',
    user : 'root',
    password : '',
    database: 'realmoney'
});

exports.getUsers = function(callback) {
  pool.getConnection(function(err, connection) {
    if(err) { console.log(err); callback(true); return; }
    var sql = "SELECT id,name FROM users";
    connection.query(sql, [], function(err, results) {
      connection.release(); // always put connection back in pool after last query
      if(err) { console.log(err); callback(true); return; }
      callback(false, results);
    });
  });
});