Я развернул репликационный набор mongodb, к которому я пытаюсь подключиться с помощью node js внутреннего приложения. Мой код подключения выглядит следующим образом:
mongoose.connect(config.database, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true,
dbName:"db7_0",
user:'****',
pass:'****'
}).catch(function (err) {
console.log('The connection to the database could not be established. Error details: ', err);
});
'config.database' - это URL-адрес подключения, который я собрал, используя документацию mongodb, и следующий:
database: "mongodb://user:pw@xxx.eu-west-1.compute.amazonaws.com:27017,xxx.eu-west-1.compute.amazonaws.com:27017,xxx.eu-west-1.compute.amazonaws.com:27017/db7_0?replicaSet=rs0"
Примечание: 'user', 'pw' и 'xxx' - это просто заполнители для реальных деталей, которые я использовал в строке подключения.
Когда я запускаю сервер и соединение с базой данных создается, мои журналы показывают следующее:
И мое приложение выдает следующую ошибку MongoNetworkError:
The connection to the database could not be established. Error details: MongoTimeoutError: Server selection timed out after 30000 ms
at Timeout._onTimeout (C:\Dev\sc\node_modules\mongoose\node_modules\mongodb\lib\core\sdam\server_selection.js:308:9)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7) {
name: 'MongoTimeoutError',
[Symbol(mongoErrorContextSymbol)]: {}
}
Database error MongoTimeoutError: Server selection timed out after 30000 ms
Я пробовал много разных подходов к решению проблемы, таких как указание пользователя, пароля и базы данных в строке подключения, а также параметров mon goose .connect, но это не помогло. разница. Я был изначально на Mon goose v5.9.2 (сейчас v5.8.2), и поведение остается прежним.
Также обратите внимание, что выполнение следующих команд в командной строке работает:
mongo "mongodb://user:pw@xx.xx.xxx.xx:27017/db7_0"
Так что я подозреваю, что это может быть ошибка mon goose, однако я изо всех сил пытаюсь выяснить, выпуск.