From f3856afb83b59c314f73c11654f8aceaf4891bc7 Mon Sep 17 00:00:00 2001 From: frankpagan Date: Wed, 25 Oct 2023 14:58:08 -0600 Subject: [PATCH] fix: ensure a single connection is created --- src/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/index.js b/src/index.js index 4808dd5..f07291d 100644 --- a/src/index.js +++ b/src/index.js @@ -6,12 +6,12 @@ const clients = new Map() async function dbClient(data) { if (data.storageUrl) { let client = clients.get(data.storageUrl) - if (!client) { + if (!client && !clients.has(data.storageUrl)) { try { clients.set(data.storageUrl, client) client = await MongoClient.connect(data.storageUrl, { useNewUrlParser: true, useUnifiedTopology: true }); + clients.set(data.storageUrl, client) } catch (error) { - clients.delete(data.storageUrl) console.error(`${data.organization_id}: storageName ${data.storageName} failed to connect to mongodb`) errorHandler(data, error) return { status: false } @@ -43,7 +43,7 @@ function database(action, data) { try { const client = await dbClient(data) - if (client.status === false) + if (!client || client.status === false) return data if (action == 'readDatabase') { const db = client.db().admin(); @@ -97,7 +97,7 @@ function array(action, data) { try { const client = await dbClient(data) - if (client.status === false) + if (!client || client.status === false) return data if (data.request) @@ -243,7 +243,7 @@ function object(action, data) { return new Promise(async (resolve, reject) => { try { const client = await dbClient(data) - if (client.status === false) + if (!client || client.status === false) return data let dataTransferedIn = 0