Използвайте пула за връзки на mysql. Той ще се свърже отново, когато връзката умре и вие получавате допълнителната полза от възможността да правите няколко sql заявки едновременно. Ако не използвате пула на базата данни, приложението ви ще блокира заявките за база данни, докато чака завършването на текущо изпълняваните заявки за база данни.
Обикновено дефинирам модул на база данни, където държа заявките си отделно от моите маршрути. Изглежда нещо подобно...
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);
});
});
});