node.js - 环回 API 连接到 MongoDB Atlas
问题描述
我使用 Loopback 创建了一个 API,并让它与 LocalHost 上的 MongoDB 一起工作。我现在正在尝试将其切换为使用 MongoDB Atlas(在线)。
我跑lb datasource
并填写了所有内容,现在这是我的datasources.json
文件:
{
"db": {
"host": "fishapi-cxtvd.mongodb.net",
"port": 0,
"url": "mongodb+srv://admin:********@fishapi-cxtvd.mongodb.net/test?retryWrites=true&w=majority",
"database": "admin",
"password": "********",
"name": "MyMongoDB",
"user": "admin",
"useNewUrlParser": true,
"connector": "mongodb"
}
}
我也尝试过重新格式化它(如另一个堆栈溢出问题所建议的那样),所以它看起来像这样:
{
"db": {
"url": "mongodb+srv://admin:********@fishapi-cxtvd.mongodb.net/test?retryWrites=true&w=majority",
"name": "FishAPI",
"connector": "mongodb"
}
}
这是我在运行时收到的错误:
MongoParseError: Cannot create data source "db": Cannot initialize connector "mongodb": URI does not have hostname, domain name and tld
有没有人对我需要更改以使其正确连接有任何建议?感谢任何帮助,因为这是我第一次使用 Loopback 和 MongoDB!
解决方案
你用的是最新版的loopback-connector-mongodb
吗?
错误消息表明连接器(或底层 MongoDB 客户端库)无法解析url
. mongodb+srv://
您使用的版本可能不支持该架构?
据我所知,mongodb+srv://
最近(2019 年 4 月)添加了对 URL 的支持,请参阅拉取请求https://github.com/strongloop/loopback-connector-mongodb/pull/497。该更改于 5 月作为loopback-connector-mongodb@4.2.0
. 请升级您的项目以使用最新的连接器版本。
或者,您可以尝试mongodb://
改用。根据这篇 MongoDB 博客文章,mongodb+srv
在 3.6 版中添加了用于简化用于连接到 MongoDB 服务器集群的种子列表的配置。根据帖子,应该可以将mongodb+srv://
包含单个主机的 mongodb://
URL 替换为包含多个主机的 URL。
推荐阅读
- python - 如何从 O(n) 中的两个字典列表中搜索?
- azure - Azure 事件中心 - 地理恢复:我们可以禁用自动故障转移吗?
- html - 通过 CSS Grid 突破侧边栏元素
- javascript - 在Javascript中将一个类附加到现有的选定类(选定的类语句选择了多个类)
- r - 如何将日期分组为日期
- python - 是否有用于评估具有滚动功能的不同列中的值的 pandas 函数?
- ffmpeg - Draw time of the current frame in seconds with just 2 digits after point
- r - 卡方检验结果的解释
- javascript - 将字符串区分大小写的值与数组匹配
- sharepoint - SharePoint 2013 - 单击编辑图标时,显示弹出框(或)模式对话框