【发布时间】:2016-01-24 17:43:54
【问题描述】:
我正在使用 Node.js Mongodb 本机驱动程序运行一些集成测试。每个测试都涉及连接到数据库,验证它不存在(例如,没有任何带有文档的集合),运行测试,然后删除数据库。高级代码如下:
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
不要求对上述代码进行具体调试,而只是一个一般性问题:MongoDB中的“拓扑被破坏”错误是什么意思,哪些事情会导致它?浏览了 Mongo 文档、源代码和其他 SO 问题,但找不到关于“拓扑被破坏”是什么意思的明确答案,以及我如何防止它在我们使用的测试方法中体现出来。
谢谢!
【问题讨论】: