使用PencilBlue连接到Heroku的Mongolab

时间:2014-12-13 04:30:00

标签: node.js mongodb heroku mlab pencilblue

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

任何帮助将不胜感激。

4 个答案:

答案 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

铅笔蓝色应该在连接时添加数据库名称。