mongodb驱动程序不释放资源

时间:2018-04-17 18:03:10

标签: javascript node.js mongodb mocha

当mongodb驱动程序无法连接时,我的mocha测试不存在(因为db例如离线)。

如何释放资源以使测试退出?客户端为空,因此我无法使用client.close()。 我知道有--exit摩卡标志,但我想关闭mongo驱动程序。 谢谢!

我的代码就像:

static async create(
    dbName: string = db_name,
    url: string = db_url,
  ): Promise<MongoDbContext> {
    return new Promise<MongoDbContext>((resolve, reject) => {
      mongodb.MongoClient.connect(
        url,
        {
          keepAlive: 1000,
          connectTimeoutMS: 1000,
          socketTimeoutMS: 1000,
        },
        function(err, client) {
          if (err) {
            console.log(err)
            return reject(err)
          }
          console.log('Connected successfully to server')
          resolve(new MongoDbContext(client, dbName))
        },
      )
    })
  }

规范

 it('should throw if error occures', async function() {
    this.timeout(1000)
    try {
      mongo = await MongoDbContext.create('artifact_test')
    } catch (error) {
      return
    }
    fail('there was no exception')
  })

更新 现在它在特定时间后终止,但没有弄清楚哪个选项对它有影响,因为在示例中一切都设置为1000毫秒,但它仍然更长

1 个答案:

答案 0 :(得分:0)

客户端正在尝试重新连接,因此您需要设置以下配置属性:

{
   autoReconnect: false
}