【问题标题】:Error: "Double colon in host identifer"错误:“主机标识符中的双冒号”
【发布时间】:2016-07-12 10:15:06
【问题描述】:

我正在尝试连接到我在 MLab 托管的数据库。我正在使用 StrongLoop API。我已将托管数据库的配置信息放入我的 datasources.json 和 config.json 文件中,但每当我使用 npm start 运行目录时,我都会在 api\node_modules\mongodb\lib\url_parser.js 处获得 throw new Error ('double colon in host identifier';) :45。

我还确保安装 loopback-connecter-mongodb npm 包。

这是 datasources.json 的 sn-p(当然没有实际的数据库详细信息):

{
  "db": {
    "name": "db",
    "connector": "mongodb",
    "host": "ds047355.mlab.com",
    "database": "dbtest",
    "username": "user",
    "password": "fakepassword",
    "port": 47355
  }
}

这是 config.json 文件:

{
  "restApiRoot": "/api",
  "host": "ds047355.mlab.com",
  "port": 47355,
  "remoting": {
    "context": {
      "enableHttpContext": false
    },
    "rest": {
      "normalizeHttpPath": false,
      "xml": false
    },
    "json": {
      "strict": false,
      "limit": "100kb"
    },
    "urlencoded": {
      "extended": true,
      "limit": "100kb"
    },
    "cors": false,
    "errorHandler": {
      "disableStackTrace": false
    }
  },
  "legacyExplorer": false
}

有什么想法吗?

【问题讨论】:

  • 你有config.json里面的主机和端口作为数据源,这不是他们的地方。配置应包括您希望环回运行节点服务器的主机和端口,本地可以是0.0.0.0:3000
  • 感谢您的帮助拉比!我在config.json 中将主机添加为0.0.0.0,并将端口添加为3000,但仍然出现相同的错误...
  • 也可能是当您在 mongodb 密码中使用 :/

标签: node.js mongodb strongloop


【解决方案1】:

我终于解决了导致此错误的问题。它正在读取我的服务器 URL 之一为 http://0.0.0.0/:8080 但当我更改为 http://0.0.0.0:8080

时已修复

希望这对您或其他人有所帮助。

【讨论】:

  • 如果你连接到 mlab 会怎样
【解决方案2】:

当您提供有关您的网址的错误信息时,通常会发生这种情况。就我而言,我提供了url.com/db_name 而不是url.com

【讨论】:

    【解决方案3】:

    我有办法!

    在 Ubuntu 上进行自我托管期间,我无法加载我的 settings.json。出于某种原因,我不得不从中删除所有空白。

    所以我终于转向 Meteor Galaxy,按照他们的教程,得到了各种各样的 mongo 错误。那么到底是什么,让我们删除所有的空白,对吧?

    tldr;将整个 setting.json 放在一行

    查看 www.skyrooms.io 以查看运行情况:D

    【讨论】:

      【解决方案4】:

      确保其中没有奇怪的字符(例如@#$%^:,/.),我有一些并收到了错误消息。将密码更改为字母数字密码,并且可以正常使用。

      【讨论】:

        【解决方案5】:

        我遇到了同样的错误,终于解决了。 我以前的数据源 json :

        "db": {
           "host": "mongodb://127.0.0.1",
           "port": 27017,
           "url": "",
           "database": "dbname",
           "password": "12345",
           "name": "db",
           "user": "admin",
           "connector": "mongodb"
        }
        

        然后,我这样填写 url 值:

        "db": {
           "host": "mongodb://127.0.0.1",
           "port": 27017,
           "url": "mongodb://127.0.0.1:27017/dbname",
           "database": "dbname",
           "password": "12345",
           "name": "db",
           "user": "admin",
           "connector": "mongodb"
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-09-15
          • 1970-01-01
          • 2013-11-28
          • 2016-11-04
          • 2022-07-19
          • 2019-09-14
          相关资源
          最近更新 更多