从共享的Linux托管服务器连接到mongodb Atlas时出错

时间:2019-09-14 05:37:56

标签: node.js shared-hosting mongodb-atlas

我试图从我的nodejs应用程序连接到mongoDB Atlas,这给了我以下错误:

SERVER STARTED...
listening on port 'http://localhost:8080'
Could not connect to the MongoDB database. Exiting now... { Error: connect ECONNREFUSED 13.234.134.161:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

我还在Mongodb Cloud(Atlas)上将IP列入了白名单。我将其设置为“所有人访问”,即:0.0.0.0/0

相同的代码在我的本地计算机上工作正常。

SERVER STARTED...
listening on port 'http://localhost:8080'
Successfully connected to the MongoDB database

当我将代码部署到GoDaddy共享linux托管服务器并尝试从那里进行连接时,会发生问题。

有什么不同...?

我的nodejs代码是:

app.set('port', process.env.PORT || 8080);

var options = {
    useNewUrlParser: true,
    useUnifiedTopology: true
}

mongoose.connect(dbConfig.dbUrl, options, function(err){
    if(err){
        console.log('Could not connect to the MongoDB database. Exiting now...', err);
        process.exit();
    } else {
        console.log("Successfully connected to the MongoDB database");
    }
});

const server = app.listen(app.get('port'), function(){
    console.log(`SERVER STARTED...\nlistening on port 'http://localhost:${app.get('port')}'`);
});

数据库网址如下:

dbUrl: "mongodb+srv://<USERNAME>:<PASSWORD>@cluster0-qsfll.mongodb.net/<DATABASE>?retryWrites=true&w=majority"

如果有人遇到相同的问题并解决了该问题,请在此处写下解决方案。谢谢:)。

1 个答案:

答案 0 :(得分:0)

遇到同样的问题。 尝试删除useUnifiedTopology。 对我有帮助。