Como passar corretamente a conexão do mysql para rotas com express.js
Eu estou tentando descobrir a melhor maneira de passar uma conexão mysql (usando o node-mysql) entre minhas rotas para express.js. Estou adicionando dinamicamente cada rota (usando um para cada loop de arquivo em rotas), o que significa que não posso simplesmente passar a conexão para as rotas que precisam dela. Eu preciso passar para todas as rotas ou nenhuma. Eu não gostei da idéia de passá-lo para aqueles que não precisam dele, então eu criei um dbConnection.js que as rotas podem importar individualmente se precisarem. O problema é que eu não acho que estou fazendo isso corretamente. A partir de agora, meu dbConnection.js contém:
var mysql = require('mysql');
var db = null;
module.exports = function () {
if(!db) {
db = mysql.createConnection({
socketPath: '/tmp/mysql.sock',
user: '*********',
password: '*********',
database: '**********'
});
}
return db;
};
E eu estou importando em cada rota usando:
var db = require('../dbConnection.js');
var connection = new db();
Mas eu gostaria de fazer assim:
var connection = require('../dbConnection.js');
Quando eu tento assim, no entanto, recebo um erro dizendo que a conexão não tem um método 'query' quando tento fazer uma consulta.