【问题标题】:Loopback API Connection to MongoDB Atlas环回 API 连接到 MongoDB Atlas
【发布时间】:2019-10-27 12:02:12
【问题描述】:

我使用 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!

【问题讨论】:

    标签: node.js mongodb api loopbackjs


    【解决方案1】:

    您使用的是最新版本的loopback-connector-mongodb吗?

    错误消息表明连接器(或底层 MongoDB 客户端库)无法解析 url。也许您使用的版本不支持架构mongodb+srv://

    据我所知,对 mongodb+srv:// URL 的支持是最近才添加的(2019 年 4 月),请参阅拉取请求 https://github.com/strongloop/loopback-connector-mongodb/pull/497。该更改于 5 月作为 loopback-connector-mongodb@4.2.0 的一部分发布。请升级您的项目以使用最新的连接器版本。

    或者,您可以尝试改用mongodb://。根据this MongoDB blog post 的说法,mongodb+srv 是在 3.6 版中添加的,以简化用于连接到 MongoDB 服务器集群的种子列表的配置。根据帖子,应该可以将包含单个主机的mongodb+srv:// URL 替换为包含多个主机的mongodb:// URL。

    【讨论】:

    • 感谢您的回复。我最终通过将名称参数更改为 db (默认环回名称参数)解决了我的问题。为了让其他看到这里的人更清楚,我使用了重新格式化的版本,只有名称、url 和连接器参数。
    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 2020-08-16
    • 2020-12-24
    • 2020-10-07
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多