我正在运行本地Node / Express服务器以连接到远程Web服务器上的MongoDB。该服务器通过SSH访问,我可以在其中运行mongo。但是,当我运行本地服务器时,它将成功SSH入,但是在尝试连接数据库时超时。在Web服务器上,我将bind_ip
更改为open(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