#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 вызывается до завершения транзакции базы данных