在我的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");
});
Run Code Online (Sandbox Code Playgroud)
在app.js从用于bin/www.js(有require('./../app')),在其中创建HTTP服务器。
当前,如果数据库连接失败,则应用程序终止,但是在终止之前创建了http服务器,因为数据库创建失败是异步报告的。
在数据库连接成功之前,我需要阻止http服务器的创建,但是我需要保留服务器创建代码bin/www.js本身,而不必在中将其移动到数据库连接成功的回调中app.js。
有什么办法可以做到吗?
只有在连接完成后才能启动服务器:
db.once('open', function () {
log.info('Connected to database');
launchMyServer()
});
Run Code Online (Sandbox Code Playgroud)
或者如果你想在另一个文件中使用它:
module.exports = function initConnection(callback) {
mongoose.connect(config.db, {});
var db = mongoose.connection;
db.on('error', function (err) {
log.error('Failed to connect to database');
process.exit(1);
});
db.once('open', function () {
log.info("Connected to database");
callback();
});
};
Run Code Online (Sandbox Code Playgroud)
从你的www.js文件中:
const initConnection = require('./../app')
initConnection(function () {
launchMyServer()
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4913 次 |
| 最近记录: |