Ошибка подключения к кластеру mongodb с наборами реплик на другом хосте - PullRequest
0 голосов
/ 15 октября 2018

У меня есть приложение nodejs в промежуточной среде, для работы которого требуется набор репликации MongoDB.Я создал свой экземпляр MongoDB, как показано ниже:

$ mongod --port 27017 --replSet rs0 --dbpath /data/db1 --smallfiles --oplogSize 128
$ mongod --port 27018 --replSet rs0 --dbpath /data/db2 --smallfiles --oplogSize 128
$ mongod --port 27019 --replSet rs0 --dbpath /data/db2 --smallfiles --oplogSize 128

и установил db1 в качестве основного.приложение также работает на том же хосте и подключается к базе данных следующим образом:

const { connectionString, replicaSet } = config.mongodb;

try {
  mongoose
    .connect(
      connectionString,
      {
        useNewUrlParser: true,
        replicaSet,
      },
    )
    .then(() => mongoose.connection.db.admin().command({ setFeatureCompatibilityVersion: '4.0' }));

, что connectionString равно: mongodb://localhost:27017/x.теперь я запускаю приложение на своем компьютере и хочу подключить его к базе данных хоста, поэтому я изменяю connectionString на: mongodb://172.16.25.66:27017/x, но MongoNetworkError: failed to connect to server [localhost:27019] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27019] Я запутался, почему он вошел в систему 127.0.0.1:29019?Я думаю, что это должен быть IP-адрес хоста, а не локальный?Как это можно исправить, чтобы я мог подключиться к промежуточному хосту MongoDB с приложением в локальной системе?

Редактировать :

, если Ip вставит console.log(connecitonString) в коде выше, результат будетбыть таким же, как вход.Но я выяснил кое-что интересное, когда я удаляю опцию replicaSet в функции connect, она работает нормально!Кто-нибудь может объяснить это?

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