Använd mysql-anslutningspoolen. Det kommer att återansluta när en anslutning dör och du får den extra fördelen av att kunna göra flera sql-frågor samtidigt. Om du inte använder databaspoolen kommer din app att blockera databasförfrågningar i väntan på att databasförfrågningar som körs ska slutföras.
Jag brukar definiera en databasmodul där jag håller mina frågor åtskilda från mina rutter. Det ser ut ungefär så här...
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'example.org',
user : 'bob',
password : 'secret'
});
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);
});
});
});