Javascript 如何使用Node.js mongodb官方提供程序重新创建mongo数据库?

Javascript 如何使用Node.js mongodb官方提供程序重新创建mongo数据库?,javascript,node.js,database,mongodb,Javascript,Node.js,Database,Mongodb,我有一个简单的例子——如果数据库存在,我想删除它,然后我想创建一个新的数据库。我用 现在,我尝试使用以下代码来完成此操作: const client = new MongoClient(dbUrl, { useNewUrlParser: true }); client.connect(() => { const db = client.db(); db.dropDatabase(); createUsers(db); client.close();

我有一个简单的例子——如果数据库存在,我想删除它,然后我想创建一个新的数据库。我用

现在,我尝试使用以下代码来完成此操作:

const client = new MongoClient(dbUrl, { useNewUrlParser: true });

  client.connect(() => {
    const db = client.db();

    db.dropDatabase();
    createUsers(db);

    client.close();

    console.log(`Database "${db.databaseName}" created successfully`);
  }, (error) => {
    if (error) throw error;
  });
但我得到了一个错误:拓扑从mongodb中被破坏。但是没有方法在删除后创建数据库。如何正确地重新创建数据库?

删除client.close

看看我的代码

const{MongoClient}=require'mongodb'; MongoClient.connect'mongodb://localhost:27017“,{useNewUrlParser:true}。thenclient=>{ console.log“已连接到MongoDB服务器” const dbOld=client.db'db01' //删除db01 dbOld.dropDatabase.then=>{ console.log`${dbOld.databaseName}成功删除` //再次创建db01 const dbNew=client.db'db01' console.log`${dbNew.databaseName}已成功重新创建`; },e=>console.loge }
祝你好运

基于@padeq答案的最终解决方案:

/**
 * Rereates a database
 * @param {String} dbUrl Database url
 */
const recreateTestDb = (dbUrl) => {
  MongoClient.connect(dbUrl, { useNewUrlParser: true }).then((client) => {
    const currentDb = client.db();

    currentDb.dropDatabase().then(() => {
      const newDb = client.db();

      createUsers(newDb);

      client.close().then(() => {
        console.log(`New database "${newDb.databaseName}" recreated successfully`);
      });
    });
  });
};