Objetos globales con Node.js + Express

Estoy estudiando Node.js + Express, codificando un ejemplo de inicio de sesión básico. Mi /login ruta de /login se establece dentro del archivo route / login.js :

 var express = require('express'); var router = express.Router(); var mysql = require('mysql'); var connectionpool = mysql.createPool({ host : 'localhost', user : 'user', password : 'pass', database : 'database' }); router.post('/', function(req,res){ connectionpool.getConnection(function(err, connection) { if (err) { console.error('CONNECTION error: ',err); res.statusCode = 503; res.send({ result: 'error', err: err.code }); } else { // Do something } }); }); module.exports = router; 

Me preguntaba: ¿cómo puedo hacer que mysql o el pool de conexiones estén visibles en toda la aplicación? No quiero volver a declararlos en cada archivo de ruta que crearé. Estoy buscando algo como un método de incluir o requerir.

¿Alguna idea?

Cree un módulo separado para que actúe como una interfaz para recuperar conexiones SQL, de esta forma:

  var mysql = require('mysql'); var connectionpool = mysql.createPool({ host : 'localhost', user : 'user', password : 'pass', database : 'database' }); exports.getConnection = function (callback) { connectionpool.getConnection(callback); }; 

Luego en otro archivo:

  var connections = require('./connections'); connections.getConnection(function (err, c) { // Use c as a connection c.query("select * from table limit 10 ",function(err,rows){ //this is important release part c.release(); if(!err) { console.log(rows); } }); });