我正在使用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
});
})
};
Run Code Online (Sandbox Code Playgroud)
每次db.dropDatabase()
调用它都会引发以下错误:
MongoError: topology was destroyed
Run Code Online (Sandbox Code Playgroud)
不要求对上面的代码进行特定的调试,而只是一个普遍的问题:MongoDB中的"拓扑被破坏"错误意味着什么样的东西可能导致它?浏览了Mongo文档,源代码和其他SO问题,但无法找到关于"拓扑被破坏"的含义的明确答案,以及如何防止它在我们正在使用的测试方法中出现.
谢谢!
Owe*_*wen 24
在任何人偶然发现这个问题的机会,问题是db.close()
对后来使用的相同数据库引用的错误调用db.dropDatabase()
.IMO' 拓扑被破坏 '是一个奇怪的错误(可能是' 套接字关闭 '),但在这种情况下是问题.
归档时间: |
|
查看次数: |
5735 次 |
最近记录: |