MongoError: пул экземпляров сервера был уничтожен: предыдущее решение нуждается в улучшении

#javascript #angularjs #mongodb #async-await #mongodb-query

#javascript #angularjs #mongodb #асинхронный-ожидание #mongodb-запрос

Вопрос:

Я понимаю, что удаление client.close() решает проблему, но мне нужно закрыть соединение после выполнения функции… Я не могу оставить соединения открытыми для базы данных… Я не думаю, что это безопасно… Но каждый раз, когда я выполняю запрос… Сначала запись завершается нормально, но как только я делаю это во второй раз, я получаю сообщение об ошибке… тем не менее, я выполняю функцию подключения в попытке, затем функцию закрытия в разделе finally, что означает либо закрытие соединения после записи в первый раз, закрывает соединение навсегда, либо ранее прочитанные предложения о том, что закрытие выполняется до записи, в чем я сильно сомневаюсь, поскольку первая запись завершается успешно… Мне нужен совет

 async function Connecting() {
            try {
                await client.connect();
                await createListing(client, req.body, req.query.dbname);
                await res.send("written to "   req.query.dbname);
            } catch (e) {
                console.error(e);
                res.send("unable to write due to "   `${e}`);
            } finally {
                await client.close();
                console.log("connection closed");
            }
        }
  

Ответ №1:

Я думаю, что должно помочь сделать функцию не асинхронной, поскольку я думаю, что close вызывается до завершения транзакции базы данных