U kunt een db-wrapper maken en deze vervolgens vereisen. node's vereisen elke keer hetzelfde exemplaar van een module, zodat u uw verbinding kunt uitvoeren en een handler kunt retourneren. Uit de Node.js-documenten :
Je zou db.js
. kunnen maken :
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;
Dan in je app.js
, je zou het gewoon nodig hebben.
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);
Met deze aanpak kunt u alle verbindingsdetails abstraheren, al het andere dat u wilt blootleggen inpakken en db
nodig hebben door uw hele applicatie terwijl u één verbinding met uw db behoudt dankzij de manier waarop node required werkt :)