当调用db.destroyDatabase和node.js mongodb native时,会导致“topology was destroyed”错误?

我正在运行一些集成testing,包括Node.js Mongodb本地驱动程序。 每个testing都涉及连接到数据库,validation它是否已经存在(例如,没有任何文档集合),运行testing,然后删除数据库。 高级代码如下:

const runSafeTest = function runSafeTest(test) { async.waterfall([ connectToMongo, throwIfDbExists, instantiateServerConnection, test ], function doneWaterfall(err, db) { db.dropDatabase(function(dbErr) { if (dbErr) throw dbErr }); }) }; 

每次db.dropDatabase()被调用时,都会抛出以下错误:

 MongoError: topology was destroyed 

不要求上述代码的具体debugging,而只是一个普遍的问题 :MongoDB中的“拓扑被破坏”错误是什么意思,什么样的事情可能导致它? 已经浏览了Mongo文档,源代码和其他SO问题,但无法find关于“拓扑被破坏”的意思,以及如何防止它在我们正在使用的testing方法中出现的明确答案。

谢谢!

       

网上收集的解决方案 "当调用db.destroyDatabase和node.js mongodb native时,会导致“topology was destroyed”错误?"

在任何时候,任何人都会遇到这个问题,这个问题是db.close()db.dropDatabase()稍后使用的同一个数据库引用的错误调用。 国际海事组织的“ 拓扑结构被破坏 ”是一个奇怪的错误(也许' 套接字 '),但在这种情况下是问题。