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


