当我尝试使用工作URL连接到相同的数据库时,Mongoose从不返回其承诺

我有一个本地托pipe的mongodb,我可以使用mongodb.MongoClient连接到。

工作代码:

var mongoClient = require("mongodb").MongoClient; 

 var startApp = function(db) { // Get our collections in an easy to use format var database = { chats: db.collection('chats'), messages: db.collection('messages') }; // Configure our routes require('./app/routes')(app, database); // START APP // Start app on port app.listen(port); // Tell user the app is running console.log("App running on port " + port); // Expose app exports = module.exports = app; } // DATABASE var database = null; mongoClient.connect(config.url, function(err, returnDB) { if(err) { console.log(err); } else { console.log("DB connected"); startApp(returnDB); } }); 

旧版代码不再有效:

 var mongoose = require('mongoose'); 

 // Connect to DB console.log('Connect to database (' + db.url + ')'); mongoose.connect(db.url); 

我已经添加了一个callback连接方法,但它永远不会被调用(错误或没有错误,这个连接函数永远不会到我的callback)。

这整个传统的应用程序依赖于使用mongoose的API来与数据库交谈,所以我不想使用MongoDB来重做所有的事情。 我怎样才能解决这个问题?

* config.url和db.url是从同一个文件加载的,它是一个有效的并且正在运行的mongodb。

修复起来非常简单。 感谢@Bhavik问我使用的是什么版本。

通过在packages.json中指定最新版本,我将mongoose更新为4.8.1,问题得到解决。