Mi piace usare il modulo asincrono quando ho bit di codice che devono essere eseguiti in modo sincrono.
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')
}
})