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);
,以便在失去连接时尝试重新连接,但没有成功。
有人能帮我找出哪里出了问题吗?
1条答案
按热度按时间dced5bon1#
假设您使用的是
mysql
npm包,则可以使用库提供的连接池:https://github.com/mysqljs/mysql#pooling-连接
当从池中检索到以前的连接时,将向服务器发送一个ping数据包,以检查连接是否仍然良好。
它很容易使用,您可以使用
createPool
代替createConnection
然后使用该池查询数据库。
它还有许多额外的好处,例如负载平衡连接。