MongoDB Atlas - Как исправить 'TransientTransactionError' на общем веб-хостинге - PullRequest
1 голос
/ 18 июня 2019

TransientTransactionError при попытке подключиться с общего веб-хоста к Mongo Atlas

У меня фактически было это в какой-то момент, но мне пришлось стереть и перезапустить мой проект с нуля на моем веб-хосте.Теперь, казалось бы, из ниоткуда я продолжаю получать вышеупомянутую ошибку при попытке подключиться к Atlas.Я уже пробовал занести в белый список IP-адреса, включая IP-адрес моего сервера, а также 0.0.0.0/0 (подстановочный знак «разрешить все») в Atlas.

Я также попытался использовать фрагмент 'full driver' вместо mongoose, но все равно получаю ту же ошибку.Наконец, я хочу отметить, что точно такой же код прекрасно работает на моей локальной машине.

Вот моя функция:

    const mongoose = require("mongoose");
    const config = require("./config");
    module.exports = cb => {
        if (mongoose.connection.readyState < 1) {
            mongoose.connect(config.db).then(
                () => {
                    console.log("Database linking successful!");
                    return cb ? cb : null;
                },
                err => {
                console.log("Failed to connect to database.", err);
                }
            );
        }
    };

Вот как выглядит сообщение об ошибке:

{ MongoNetworkError: failed to connect to server [<mongodb-shard-goes-here>.mongodb.net:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 54.145.177.180:27017]
    at Pool.<anonymous> (/home/titanesp/public_html/server/node_modules/mongodb-core/lib/topologies/server.js:431:11)
    at Pool.emit (events.js:182:13)
    at connect (/home/titanesp/public_html/server/node_modules/mongodb-core/lib/connection/pool.js:557:14)
    at makeConnection (/home/titanesp/public_html/server/node_modules/mongodb-core/lib/connection/connect.js:39:11)
    at callback (/home/titanesp/public_html/server/node_modules/mongodb-core/lib/connection/connect.js:261:5)
    at TLSSocket.err (/home/titanesp/public_html/server/node_modules/mongodb-core/lib/connection/connect.js:286:7)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }
...