Как обработать неудачную попытку подключения к mongodb (и что мешает завершить работу моего node.js)? - PullRequest
0 голосов
/ 10 мая 2019

Приведенный ниже код пытается подключиться к экземпляру 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...