【发布时间】:2016-09-20 00:42:36
【问题描述】:
我正在使用 Node JS,我正在尝试连接到 mysql 数据库。由于超时,它不断断开连接,所以我编写了一个函数来在超时时重新连接。虽然我需要它是一个连续的连接,否则我的代码中的引用将不起作用。这是我的相关代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '.........', // MySQL Host
user : '.........', // MySQL User
password : '.........', // MySQL Password
database : '.........' // MySQL Databse
});
// MYSQL INFO
//connection.connect();
function replaceClientOnDisconnect(connection) {
connection.on("error", function (err) {
if (!err.fatal) {
console.log('Databse Error, error not fatal');
return;
}
if (err.code !== "PROTOCOL_CONNECTION_LOST") {
throw err;
console.log('PROTOCOL_CONNECTION_LOST Error: Reconnecting to database...');
}
setTimeout(function () {
connection.destroy();
connection = mysql.createConnection(connection.config);
replaceClientOnDisconnect(connection);
connection.connect(function (error) {
if (error) {
process.exit(1);
} else {
console.log('Reconnected to database!');
}
}, 1000); // 1 sec
});
});
}
// And run this on every connection as soon as it is created.
replaceClientOnDisconnect(connection);
【问题讨论】:
标签: javascript mysql node.js timeout