2017-02-14 10 views
1

У меня есть локально размещенный mongodb, с которым я могу подключиться к mongodb.MongoClient.Mongoose никогда не возвращает свое обещание, когда я пытаюсь подключиться к тому же db, используя рабочий URL

Рабочий код:

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

Я добавил обратный вызов к этому методу подключения, но он никогда не вызывается (ошибка или отсутствие ошибки, эта функция подключения никогда не доходит до моего обратного вызова).

Все это устаревшее приложение опирается на API с помощью мангуста, чтобы поговорить с базой данных, поэтому я не хочу переделывать все это с помощью mongodb. Как я могу это исправить?

* config.url и db.url загружаются из одного файла, и это действительный и выполняемый mongodb.

+0

Какую версию Mongoose вы используете? – Bhavik

+0

npm -v mongoose: 4.1.2 – RevertiveDeath

ответ

2

Это было действительно легко исправить. Спасибо @Bhavik за то, что спросила меня, какую версию я использовал.

Я обновил mongoose до 4.8.1, указав новейшую версию в пакетах package.json, и проблема решена.