Você pode criar um wrapper de banco de dados e exigi-lo. node's require retorna a mesma instância de um módulo todas as vezes, então você pode realizar sua conexão e retornar um handler. Dos documentos Node.js :
Você pode criar
db.js
:var mysql = require('mysql');
var connection = mysql.createConnection({
host : '127.0.0.1',
user : 'root',
password : '',
database : 'chat'
});
connection.connect(function(err) {
if (err) throw err;
});
module.exports = connection;
Em seguida, em seu
app.js
, você simplesmente o exigiria. var express = require('express');
var app = express();
var db = require('./db');
app.get('/save',function(req,res){
var post = {from:'me', to:'you', msg:'hi'};
db.query('INSERT INTO messages SET ?', post, function(err, result) {
if (err) throw err;
});
});
server.listen(3000);
Essa abordagem permite que você abstraia quaisquer detalhes de conexão, envolva qualquer outra coisa que você queira expor e exija
db
em todo o seu aplicativo, mantendo uma conexão com seu banco de dados, graças à forma como o node require funciona :)