在SSH服务器上将Mongoose连接到远程MongoDB

时间:2020-02-14 18:44:08

标签: node.js mongodb express mongoose ssh-tunnel

我正在运行本地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

0 个答案:

没有答案
相关问题