在我的app.js
中,当应用程序启动时,我会创建一个MongoDB连接。
mongoose.connect(config.db, {});
var db = mongoose.connection;
db.on('error', function () {
log.error("Failed to connect to database");
process.exit(1);
});
db.once('open', function () {
log.info("Connected to database");
});
app.js
从bin/www.js
中使用(使用require('./../app')
),其中创建了http服务器。
目前,如果数据库连接不成功,则应用程序会终止,但是在终止之前已经创建了http服务器,因为异步地报告了数据库创建失败。
我需要阻止http服务器的创建直到数据库连接成功,但是我需要将服务器创建代码保留在bin/www.js
中,而不是将其移动到app.js
中的数据库连接成功回调函数中。
有什么方法可以做到这一点吗?
app.js
被用于bin/www.js
中(通过require('./../app')
),用于创建http服务器。
当前情况下,如果数据库连接不成功,应用程序会终止,但是由于数据库创建失败是异步报告的,所以在终止之前已经创建了http服务器。
我需要阻止http服务器的创建,直到数据库连接成功,但我需要将服务器创建的代码保留在bin/www.js
中,而不是将其移到app.js
中的数据库连接成功回调函数中。
是否有任何方法可以实现这一点?
db.once('open'....
内部。 - Saleem