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);
});
});
});