我正在尝试连接到我在MLab托管的数据库。我正在使用StrongLoop API。我已将托管数据库的配置信息放入我的datasources.json和config.json文件中,但每当我使用npm start
运行目录时,我在api \ node_modules \ mongodb获得throw new Error ('double colon in host identifier';)
\ 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
}

有什么想法吗?
答案 0 :(得分:7)
我终于解决了我的问题导致了这个错误。它正在以 http://0.0.0.0/:8080 的形式阅读我的一个服务器网址,但在我更改为 http://0.0.0.0:8080
时已修复希望这可以帮助你或其他人。
答案 1 :(得分:2)
通常会在您提供错误的网址信息时发生。在我的情况下,我提供了url.com/db_name
而不是url.com
答案 2 :(得分:2)
我有解决方案!
在我在Ubuntu上自托管的时候,我无法加载我的settings.json。出于某种原因,我不得不从中移除所有空白区域。
所以我最终转移到Meteor Galaxy,按照他们的教程写信,并获得各种mongo错误。那么到底是什么,让我们删除所有的空白区域吧?
tldr;将整个setting.json放在一行
检查www.skyrooms.io看跑步:D
答案 3 :(得分:1)
我得到了同样的错误,最后解决了。 我的previuos数据源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"
}
答案 4 :(得分:0)
请确保您没有奇怪的字符(例如@#$%^:,/.
),我有一些并收到了错误消息。将密码更改为字母数字密码并完美运行。