node.js - 连接到 mongodb Atlas 的身份验证问题
问题描述
我想要完成的可能是有史以来最简单的事情。我只想使用 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,你知道吗?它连接!虽然我无法使用我的电脑连接它。所以可能它与我的位置或我的连接,可能是位置有关。
解决方案
推荐阅读
- r - as.numeric(bbox) 中的错误:无法将类型“S4”强制转换为“double”类型的向量
- r - 使用季度结束日期 (R) 填充数据框列
- javascript - 将 JavaScript 鼠标事件从一个元素传播到另一个元素?
- spring-boot - 在spring boot中上传网络连接速度慢的文件时出错
- swift - 手动解决 Swift 包依赖项
- swift - 在 NSScrollView 中更改 NSView 的框架最终会产生奇怪的值
- qt5 - 为什么 Qt5 在使用信号时会警告有关 miisng 信号?
- javascript - Qlik 如何导入依赖于其他以太的 JS 库
- android - 是否有任何 Android 通知 setContentTitle 和 setContextText 魔法值?
- java - 如何使用具有使用 java 流的属性的不同对象的列表来创建不同对象的列表