Heroku не будет подключаться к MongoDB Atlas - PullRequest
0 голосов
/ 07 апреля 2020

Я знаю, что этот вопрос задавался ранее, но я серьезно нигде не нашел ответа на этот вопрос.

Я успешно развернул приложение Node.js в Heroku, но не могу подключиться к своей MongoDB Атлас кластера. Это ошибка, которую я получаю:

2020-04-07T10:39:20.723516+00:00 app[web.1]: Connection failed... MongooseError [MongooseServerSelectionError]: connection <monitor> to 54.72.180.237:27017 closed
2020-04-07T10:39:20.723526+00:00 app[web.1]:     at new MongooseServerSelectionError (/app/node_modules/mongoose/lib/error/serverSelection.js:22:11)
2020-04-07T10:39:20.723527+00:00 app[web.1]:     at NativeConnection.Connection.openUri (/app/node_modules/mongoose/lib/connection.js:808:32)
2020-04-07T10:39:20.723529+00:00 app[web.1]:     at Mongoose.connect (/app/node_modules/mongoose/lib/index.js:333:15)
2020-04-07T10:39:20.723530+00:00 app[web.1]:     at Object.<anonymous> (/app/index.js:22:4)
2020-04-07T10:39:20.723531+00:00 app[web.1]:     at Module._compile (internal/modules/cjs/loader.js:959:30)
2020-04-07T10:39:20.723531+00:00 app[web.1]:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
2020-04-07T10:39:20.723532+00:00 app[web.1]:     at Module.load (internal/modules/cjs/loader.js:815:32)
2020-04-07T10:39:20.723532+00:00 app[web.1]:     at Function.Module._load (internal/modules/cjs/loader.js:727:14)
2020-04-07T10:39:20.723532+00:00 app[web.1]:     at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)
2020-04-07T10:39:20.723533+00:00 app[web.1]:     at internal/main/run_main_module.js:17:11 {
2020-04-07T10:39:20.723533+00:00 app[web.1]:   message: 'connection <monitor> to 54.72.180.237:27017 closed',
2020-04-07T10:39:20.723534+00:00 app[web.1]:   name: 'MongooseServerSelectionError',
2020-04-07T10:39:20.723534+00:00 app[web.1]:   reason: TopologyDescription {
2020-04-07T10:39:20.723535+00:00 app[web.1]:     type: 'ReplicaSetNoPrimary',
2020-04-07T10:39:20.723535+00:00 app[web.1]:     setName: null,
2020-04-07T10:39:20.723535+00:00 app[web.1]:     maxSetVersion: null,
2020-04-07T10:39:20.723536+00:00 app[web.1]:     maxElectionId: null,
2020-04-07T10:39:20.723536+00:00 app[web.1]:     servers: Map {
2020-04-07T10:39:20.723537+00:00 app[web.1]:       'milenskiblog-shard-00-00-lkwi4.mongodb.net:27017' => [ServerDescription],
2020-04-07T10:39:20.723537+00:00 app[web.1]:       'milenskiblog-shard-00-01-lkwi4.mongodb.net:27017' => [ServerDescription],
2020-04-07T10:39:20.723538+00:00 app[web.1]:       'milenskiblog-shard-00-02-lkwi4.mongodb.net:27017' => [ServerDescription]
2020-04-07T10:39:20.723539+00:00 app[web.1]:     },
2020-04-07T10:39:20.723539+00:00 app[web.1]:     stale: false,
2020-04-07T10:39:20.723539+00:00 app[web.1]:     compatible: true,
2020-04-07T10:39:20.723540+00:00 app[web.1]:     compatibilityError: null,
2020-04-07T10:39:20.723540+00:00 app[web.1]:     logicalSessionTimeoutMinutes: null,
2020-04-07T10:39:20.723541+00:00 app[web.1]:     heartbeatFrequencyMS: 10000,
2020-04-07T10:39:20.723541+00:00 app[web.1]:     localThresholdMS: 15,
2020-04-07T10:39:20.723541+00:00 app[web.1]:     commonWireVersion: null
2020-04-07T10:39:20.723542+00:00 app[web.1]:   },
2020-04-07T10:39:20.723542+00:00 app[web.1]:   [Symbol(mongoErrorContextSymbol)]: {}
2020-04-07T10:39:20.723542+00:00 app[web.1]: }

Вот как я подключаюсь к MongoDB:

mongoose
  .connect(process.env.blog_db, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  })
  .then(() => console.log("Connected to MongoDB..."))
  .catch((err) => console.error(`Connection failed...`, err));

И это моя переменная окружения (которую я точно так же установил в Heroku). enter image description here

Странная вещь если я запускаю индекс nodemon. js приложение отлично работает и сразу подключается к кластеру MongoDB Atlas, но развернутое приложение heroku, похоже, не подключается к БД. У меня буквально нет идей, и я вырываю свои волосы здесь, поэтому, пожалуйста, если кто-то уже занимался этим вопросом, мне нужна ваша помощь!

Заранее спасибо!

...