У меня есть приложение 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
, она работает нормально!Кто-нибудь может объяснить это?