5

コード:

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 を実行すると、既に開いていると表示され、同じ接続に対して「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
});

何が問題ですか?("mongoose": "3.1.0") データベースも削除されていません...ありがとう

4

1 に答える 1

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

問題は、接続が開いたときに dropDatabase コマンドがキューに入れられず、実行されなかったことです。したがって、createConnection でコールバックを使用すると、それが機能し、この後にデータベースを削除すると、機能しました!

于 2012-09-03T13:03:22.303 に答える