Mongodb Atlas Express.js Ошибка: getaddrinfo ENOTFOUND - PullRequest
3 голосов
/ 06 мая 2019

Я хочу подключить мое экспресс-приложение к кластеру mongoDb Atlas.Я из Ирана, и облачные базы данных санкционированы для нас.Я использовал VPN, чтобы обойти его, чтобы иметь возможность на практике.Есть какая-то ошибка кодирования, которую я совершил или это из-за использования VPN?

Ошибка:

(node:9008) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.

connected

events.js:174
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND
is listening...

    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
Emitted 'error' event at:
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1448:12)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:17)
[nodemon] app crashed - waiting for file changes before starting...

И код:

database.js
----------------

const mongoDb = require('mongodb');
const MongoClient = mongoDb.MongoClient;

let _db;

const mongoConnect = callback => {
  MongoClient.connect(
    'mongodb+srv://<someUser>:<somePassword>@<someCluster>-zh1eb.mongodb.net/test?retryWrites=true'
  )
    .then(client => {
      console.log('\nconnected\n');
      _db = client.db();
      callback();
    })
    .catch(err => {
      console.log('\nerror\n', err);
      throw err;
    });
};

const getDb = () => {
  if (_db) {
    return _db;
  }
  throw 'NO DATABASE FOUND';
};

exports.mongoConnect = mongoConnect;
exports.getDb = getDb;




app.js
------------

...
const mongoConnect = require('./util/database').mongoConnect;
...

mongoConnect(() => {
  app.listen(3000, '\nis listening...\n');
});

1 Ответ

0 голосов
/ 06 мая 2019

Я выяснил в чем проблема:

mongoConnect(() => {
  app.listen(3000, '\nis listening...\n');
});

на самом деле должно быть

mongoConnect(() => {
  app.listen(3000, () => { console.log('\nis listening...\n');});
});

Глупый я ...:)

Для тех, у кого есть такая проблема:
Сначала проверьте, является ли источником проблемы ваш код или соединение с MongoDb.
То есть вместо выбора «подключить приложение» выберите «подключиться к Mongodb Compass» .
Если Mongodb Compass может подключиться и показать ваш кластер, то определенно что-то не так с вашим кодом, особенно. как это закодировано для подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...