Error: "Double colon in host identifer"

Error: "Double colon in host identifer"

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

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

这里是 datasources.json 的片段(当然没有实际的数据库详细信息):

{
  "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
}

有什么想法吗?

我终于解决了导致此错误的问题。它正在将我的一个服务器 URL 读取为 http://0.0.0.0/:8080 but was fixed when I changed to http://0.0.0.0:8080

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

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

我有办法!

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

所以我最终转到了 Meteor Galaxy,严格按照他们的教程进行操作,并遇到了各种 mongo 错误。那么到底是什么,让我们删除所有白色 space,对吗?

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

检查 www.skyrooms.io 以查看 运行 :D

确保其中没有奇怪的字符(例如 @#$%^:,/.),我有一些但收到了错误消息。将密码更改为字母数字密码并完美运行。

我也遇到了同样的错误,终于解决了。 我以前的数据源 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"
}