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
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'
});
然后使用池查询数据库。
它还有许多其他好处,例如负载平衡连接。