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 它表示它已经打开,并且同一连接不支持多次调用“打开”。

即使这样也行不通

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 回答