我有小问题,我不知道从哪里开始:我有应用程序错误,我认为我的MongoLab数据库没有正确连接。
这是heroku w2w.
的链接应用程序中发生错误,您的页面无法执行 提供服务。请稍后再试。
如果您是应用程序所有者,请查看日志以获取详细信息。
这是我的config.json文件:
{
"siteName": "PencilBlue Heroku and MongoDB Demo",
"siteRoot": "http://w2w.herokuapp.com",
"siteIP": "w2w.herokuapp.com",
"log_level": "info",
"db": {
"type":"mongo",
"servers": [
"mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb"
],
"name": "pencilbluedb",
"authentication": {
"un": "hercules",
"pw": "MYPASSWORD",
},
"writeConern": 1
},
"cache": {
"fake": true,
"host": "localhost",
"port": 6379
},
"settings": {
"use_memory": true,
"use_cache": false
},
"templates": {
"use_memory": true,
"use_cache": false
},
"plugins": {
"caching": {
"use_memory": true,
"use_cache": false
}
}
}
我不知道为什么它没有加载。我按照这里的说明进行操作:Pencilblue link,唯一的区别是我正在尝试连接 MongoLab ,他们建议 MongoHQ (已经更改) “撰写”)。
任何帮助将不胜感激。
答案 0 :(得分:1)
看起来PencilBlue指令没有db凭据作为mongodb连接字符串的一部分。尝试将它们从连接字符串中删除,看看是否能解决问题。只需确保在“'身份验证”中指定凭据即可。它看起来像你已经在做的领域。
答案 1 :(得分:0)
PencilBlue联合创始人。
你错过了MongoDB网址末尾的正斜杠:
"mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb/"
答案 2 :(得分:0)
我发现这个有用:
比如说这是你的连接字符串URI
的mongodb:// heroku_td9xx269:vl3o3hsj6e61ib7kiaul0vsjrd@ds139725.mlab.com:39725 / heroku_td9xx269
"db": {
"type": "mongo",
"servers": [
'mongodb://heroku_td9xx269:vl3o3hsj6e61ib7kiaul0vsjrd@ds139725.mlab.com:39725'
],
"name": "heroku_td9mdp69",
"authentication": {
"un": "heroku_td9xx269",
"pw": "vl3o3hsj6e61ib7kiaul0vsjrd",
},
"writeConcern": 1,
"query_logging": false
},
诀窍是使用你的dbuser作为键“un”和“name”字段的值。
答案 3 :(得分:0)
看起来您要两次定义数据库名称,一次在URL中,一次在“name”属性上。从URL中删除数据库名称。 e.g
的mongodb://大力神:MYPASSWORD@ds063330.mongolab.com:63330 /
而不是
的mongodb://大力神:MYPASSWORD@ds063330.mongolab.com:63330 / pencilbluedb
铅笔蓝色应该在连接时添加数据库名称。