我想完成的事情可能是有史以来最简单的事情。我只想使用mongodb驱动程序连接到nodejs中的mongodb atlas免费层M0。我已经创建了一个免费帐户和集群。
这是我的简单代码:
const mongoclient = require('mongodb').MongoClient;
const URI = 'mongodb+srv://mohammed:mypassword@lebran-0qf7m.gcp.mongodb.net/test?retryWrites=true';
mongoclient.connect(URI, { useNewUrlParser: true }, (err, client) => {
if(err) throw err;
console.log('mongodb connected');
db = client.db('mern');
})
这是运行文件时发生的情况:
Mohammeds-MacBook-Pro:mern ahmed$ node server.js
/Users/ahmed/Projects/mern/server.js:13
if(err) throw err;
^
Error: queryTxt ESERVFAIL lebran-0qf7m.gcp.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:199:19)
我还使用以下命令尝试了mongo shell:
mongo "mongodb+srv://lebran-0qf7m.gcp.mongodb.net/mern" --username mohammed
这是我得到的输出:
MongoDB shell version v4.0.6
Enter password:
connecting to: mongodb://lebran-shard-00-00-0qf7m.gcp.mongodb.net.:27017,lebran-shard-00-01-0qf7m.gcp.mongodb.net.:27017,lebran-shard-00-02-0qf7m.gcp.mongodb.net.:27017/mern?gssapiServiceName=mongodb&ssl=true
2019-02-20T22:48:57.232+0300 E QUERY [js] Error: Authentication failed. :
connect@src/mongo/shell/mongo.js:343:13
@(connect):1:6
exception: connect failed
我确定我输入了正确的密码。我已经更改了几个,但它们都不起作用。我的IP列为白名单。我也有一个管理员帐户。我能想到的所有先决条件。
我能够连接到本地服务器,但不能连接到Atlas。这真的开始让我发疯。
非常感谢您的帮助...
**更新: 我刚刚将应用程序部署到heroku,您知道吗?它连接!我无法通过计算机连接它。因此,可能必须与我的位置或连接(可能是位置)做些事情。