Я использую локальный сервер Node / Express для подключения к MongoDB на удаленном веб-сервере. Доступ к серверу осуществляется через S SH, и я могу запустить там mon go. Но когда я запускаю свой локальный сервер, он успешно запускается S SH, но время ожидания при попытке подключения к базе данных истекает. На веб-сервере я изменил свой bind_ip
на открытый (0.0.0.0), а мой auth
на true.
const config = {
username: 'myusername',
password: 'mypassword',
host: 'mywebserverIP',
port: 22,
dstPort: 27017,
localHost: '127.0.0.1',
localPort: '29337',
};
// Body Parser Middleware
app.use(bodyParser.json());
// Bring in mongo db
const db = 'mongodb://myusername:password@webserverIP/db';
const server = tunnel(config, function(error, server) {
if (error) {
console.log('SSH connection error: ' + error);
}
console.log('SSH connection successful');
// Connect to mongo
mongoose
.connect(db, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log('Connected to Mongo Database!'))
.catch(err => console.error(err));
});
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server started on port ${port}!`));
Я не уверен, в чем проблема. Я получаю это сообщение об ошибке в моей консоли.
MongooseError [MongooseTimeoutError]: Server selection timed out after 30000 ms