NodeJS MySQL,由于连接丢失而重新连接吗?

问题描述 投票:0回答:1
function Connect() {
    var connection = mysql.createConnection({
        host     : 'hidden',
        user     : 'hidden',
        password : 'hidden',
        database : 'hidden'
    });

    connection.connect(function(err) {
        if (err) {
            console.log('Error connecting to Database'.red);
            setInterval(Connect, 5000);
            connection.end();
            }else{
            console.log('Connected to Database'.green);
        }

    });
}

Connect();

我正在尝试这样做,所以如果数据库断开连接,我的代码不会崩溃。

它将连接到易于重新启动和更新的数据库,这意味着该程序将在失去连接后崩溃。

我尝试添加setInterval(Connect, 5000);,因此如果连接断开但没有运气,它将尝试重新连接。

有人可以帮我解决我要去的地方吗?

mysql node.js node-mysql
1个回答
0
投票

假设您正在使用mysql npm包,则可以使用库提供的连接池:

https://github.com/mysqljs/mysql#pooling-connections

当从池中检索到先前的连接时,将ping数据包发送到服务器以检查连接是否仍然良好。

非常容易使用,可以使用createConnection代替使用createPool

var pool  = mysql.createPool({
  connectionLimit : 2,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret',
  database        : 'my_db'
});

然后使用池查询数据库。

它还有许多其他好处,例如负载平衡连接。

© www.soinside.com 2019 - 2024. All rights reserved.