0

我有一个小问题,我不知道从哪里开始:我有应用程序错误,我认为我的 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(已更改为“compose”)。

任何帮助,将不胜感激。

4

4 回答 4

1

看起来 PencilBlue 指令没有将 db 凭据作为 mongodb 连接字符串的一部分。尝试将它们排除在连接字符串之外,看看是否能解决问题。只需确保您在“身份验证”字段中指定您已经在执行的凭据即可。

于 2014-12-13T21:10:50.730 回答
0

PencilBlue 联合创始人在这里。

您缺少 MongoDB URL 末尾的正斜杠:

"mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb/"
于 2014-12-15T15:09:06.810 回答
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”字段的值。

于 2016-11-28T15:51:49.887 回答
0

看起来您定义了两次数据库名称,一次在 URL 中,一次在“名称”属性中。从 URL 中删除数据库名称。例如

mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/

代替

mongodb://hercules:MYPASSWORD@ds063330.mongolab.com:63330/pencilbluedb

Pencilblue 应该在连接时添加数据库名称。

于 2017-03-11T01:21:35.290 回答