2017-02-14 1 views
1

mongodb.MongoClientを使用して接続できるローカルにホストされたmongodbがあります。作業用URLを使用して同じデータベースに接続しようとすると、Mongooseはその約束を返すことはありません

の作業コード:

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); 

この接続メソッドにコールバックを追加しましたが、コールされることはありません(エラーまたはエラーなし、この接続関数はコールバックには届きません)。

このレガシーアプリはすべて、mongooseを使用してデータベースと通信しているため、mongodbを使用してすべてをやり直したくありません。これをどうすれば解決できますか?

* config.urlとdb.urlは同じファイルから読み込まれ、有効で実行中のmongodbです。

+0

あなたはどのバージョンのMongooseを使用していますか? – Bhavik

+0

npm -vマングース:4.1.2 – RevertiveDeath

答えて

2

本当に簡単に修正できました。私が使っていたバージョンを聞いてくれてありがとう@Bhavik。

最新のバージョンをpackages.jsonに指定してmongooseを4.8.1にアップデートし、問題が解決されました。

関連する問題