2015-01-05 3 views
0

Я использую экспресс для моего http-сервера. Я хочу сначала инициализировать подключение к базе данных, прежде чем я начну принимать любое http-соединение с клиентской стороны. Часть кода приведена ниже.node.js express - задержка начала

function connect_to_db(connection_string) {...}; 

connect_to_db(connection_string); 
var server = app.listen(app.get('port'), function() { 
    debug('Express server listening on port ' + server.address().port); 
}); 

Это не работает, потому что соединение db требует времени, которое необходимо установить. До завершения connect_to_db сервер http уже запущен.

Любые советы о том, как заставить код ждать установления соединения db в первую очередь?

ответ

2

вам необходимо инициализировать сервер, когда вы можете подключиться к базе данных. Вероятно, вам потребуется обратный вызов, когда вы подключены к базе данных. например

connect_to_db(connection_string, function(){ 
    var server = app.listen(app.get('port'), function() { 
     debug('Express server listening on port ' + server.address().port); 
    }); 
} 
+0

Вы так правы. Теперь я чувствую себя глупо, чтобы задавать такой вопрос. :( – Lee