2014-12-13 94 views
0

我有一個小問題,我不知道從哪裏開始:我有應用程序錯誤,我認爲我的MongoLab數據庫連接不正確。用PencilBlue連接到Heroku的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:[email protected]: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

請注意,如果您安裝了heroku CLI,則可以使用「heroku logs --tail」https://devcenter.heroku來定位您的應用程序的日誌。COM /用品/日誌#實時尾。如果您有任何疑問,請隨時聯繫我們[email protected] – 2014-12-13 21:11:50

+0

Chris,我運行了heroku logs - tail,並得到了大量與「應用程序崩潰」代碼= H10的爭吵。因爲我是mongo和node的新手,你能告訴我它的意思嗎? – 2014-12-14 02:51:24

+0

在推送應用程序更改/重新啓動應用程序之前,您應該開始拖拽日誌。這樣,當你的應用程序崩潰時,你可以看到錯誤是什麼。 – 2014-12-14 06:04:59

回答

1

看起來PencilBlue指令沒有將db憑據作爲mongodb連接字符串的一部分。嘗試從連接字符串中刪除它們,看看是否解決了這個問題。只要確保你在'認證'字段中指定了證書,它看起來像你已經在做。

+0

你能澄清一下評論什麼。自從我剛剛開始學習這個以來,我有點失落。謝謝。 – 2014-12-14 02:47:06

+0

您正在使用「mongodb:// hercules:[email protected]:63330/pencilbluedb」。嘗試使用「mongodb://ds063330.mongolab.com:63330/pencilbluedb」而不是 – 2014-12-14 06:06:17

+0

哦,好的。我第一次嘗試這個選項時遇到了這個問題。它沒有解決它:( – 2014-12-14 16:12:52

0

PencilBlue聯合創始人在這裏。

你錯過了在MongoDB的URL的結尾斜槓:

"mongodb://hercules:[email protected]:63330/pencilbluedb/" 
+0

親愛的C0的創始人! 我的所有的尊重和良好的祝願,我很抱歉,但這並沒有幫助!斜線 - 沒有斜線,證書 - 沒有憑據。它說,應用程序錯誤 – 2014-12-18 02:43:44

+0

那麼,如果是這種情況,請將日誌級別設置爲「調試」或「愚蠢」,並在我們的github上打開一張票,以便我們深入瞭解它。 – 2014-12-18 18:56:35

0

我發現這工作:

例如說這是你的連接字符串URI

的MongoDB :// heroku_td9xx269:[email protected]:39725/heroku_td9xx269

"db": { 
    "type": "mongo", 
    "servers": [ 
     'mongodb://heroku_td9xx269:[email protected]:39725' 
    ], 
    "name": "heroku_td9mdp69", 
    "authentication": { 
     "un": "heroku_td9xx269", 
     "pw": "vl3o3hsj6e61ib7kiaul0vsjrd", 
    }, 
    "writeConcern": 1, 
    "query_logging": false 
}, 

訣竅是使用您的dbuser作爲鍵「un」和「name」字段的值。

0

它看起來像你正在定義你的數據庫名稱兩次,一次在URL中,一次在「名稱」屬性。從URL中刪除數據庫名稱。例如

mongodb的://大力神:[email protected]:的63330/

代替

mongodb的://大力神:[email protected] :63330/pencilbluedb

而且pencilblue應該在連接時添加數據庫名稱。