Lubię używać modułu async kiedy mam fragmenty kodu, które muszą działać synchronicznie.
var async = require('async');
async.series([
function(next){
db.open(next)
}
, function(next){
db.loadSite('siteName', next)
}
], function(err){
if(err) console.log(err)
else {
// Waits for defined functions to finish
console.log('Database connected')
}
})