1
我有一個本地託管的mongodb,可以使用mongodb.MongoClient連接到該數據庫。當我嘗試使用工作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);
我已經添加了對此連接方法的回調,但它永遠不會被調用(錯誤或沒有錯誤,此連接函數永遠不會回到我的回調)。
這整個遺留應用程序依靠API使用貓鼬與數據庫交談,所以我不想用mongodb重做所有。我怎樣才能解決這個問題?
* config.url和db.url是從同一個文件加載的,它是一個有效且正在運行的mongodb。
你使用的是什麼版本的Mongoose? – Bhavik
npm -v mongoose:4.1.2 – RevertiveDeath