2012-08-31 42 views
5

代碼:Mongoose 3.1.0:爲什麼Connection.db.dropDatabase(callback)中的回調從不被調用,並且數據庫不是DROPPED?

var connection = mongoose.createConnection('mongodb://localhost:9000/' + databaseName); 
connection.db.dropDatabase(function(err){ 
    // never reach this point! 
    debugger; 
    console.log(err); 
    console.log('-------------->Dropped database: ' + databaseName); 
}); 

如果我不connection.open它說,它已經打開,並沒有多次調用「開放」都支持相同的連接。

即使這不工作

var conn = mongoose.createConnection('mongodb://localhost',databaseName, 9000, {}, function(){ 
    console.log('created'); // is reached 
    conn.db.dropDatabase(callback); // but the callback is not called anyway 
}); 

問題是什麼? (「貓鼬」:「3.1.0」) 數據庫甚至沒有下降... 感謝

回答

3
var connection = mongoose.createConnection('mongodb://localhost:9000/' + databaseName, function(err){ 
     connection.db.dropDatabase(function(err){ 
         // now it works! 
        }) 
    }); 

的問題是,dropDatabase命令不排隊,當連接打開無法運行。因此,如果我在createConnection上使用了回調函數,那麼它在這之後工作並放棄數據庫,它工作正常!

+0

難道你不是已經在你原來的帖子的「這不工作」部分嘗試過嗎? – JohnnyHK

+0

是的,這很奇怪。我不知道爲什麼現在它工作:S –

+0

好吧,有一點不同:在「問題」中,我已經通過db作爲參數,而不是在字符串中進行連接,就像在「答案」中一樣。這是我所知道的訣竅。 –

相關問題