Приведенный ниже код пытается подключиться к экземпляру MongoDB.
При успешном подключении он печатает, закрывает соединение и, таким образом, завершается, как и ожидалось.
Однако, когда соединение не установлено (например, экземпляр MongoDB не запущен), приведенный ниже код не завершается, даже если переменная клиента не определена.
Что я могу сделать, чтобы разрешить его прерывание в случае сбоя соединения? Repro ниже.
Согласно этому сообщению ( мой скрипт nodejs не завершается сам по себе после успешного выполнения ) Я попытался запустить process._getActiveRequests () и process._getActiveHandles (), чтобы увидеть, что было активным и, следовательно, предотвратить узел. JS от выхода. Они показывают, что действительно есть активные запросы / дескрипторы, но я не уверен, как их закрыть.
const MongoClient = require('mongodb').MongoClient;
async function main(){
let client;
try {
client = await MongoClient.connect('mongodb://localhost:27017');
console.log('Connected successfully!');
} catch (error) {
console.log(`Failed to connect:${error}`);
} finally {
if (client)
client.close();
}
}
main();