2011-09-27 83 views
4

我有一個使用Express的Node.js應用程序,它將數據存儲在mongoDB(本地)中。Node.js - 在Heroku上使用MongoHQ連接到MongoDB

現在它已經成功地在柏柏堆上推送到heroku並且服務器正在運行。我通過終端添加了mongohq插件。

現在...我如何通過mongohq將mongoDB連接到我的應用程序以開始使用它?我在網上沒有看到這個教程。如果您可以指向我,或者讓我開始在哪裏添加配置,我將不勝感激!

非常感謝。

更新:

我試過以下(與MYPASSWORD和MYDBNUMBER實際值:

在routes.js

var db = mongoose.connect('mongodb://heroku:<MYPASSWORD>@staff.mongohq.com:10049/<MYDBNUMBER>'); 

在我schema.js(也試過使用heroku

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://heroku:<MYPASSWORD>@staff.mongohq.com:10049/<MYDBNUMBER>'); 

我的pac kage.json

{ 
"name": "NAME" 
, "version": "0.0.1" 
, "dependencies": { 
    "express": "2.4.6" 
, "connect": "1.7.1" 
, "stylus": ">= 0.0.1" 
, "mongodb": ">= 0.9.6-7" 
, "mongoose": ">= 2.0.0" 
, "ejs": ">=0.4.3" 
} 
} 

現在,只有根'/'GET成功了。其實,如果我嘗試/ page/ANYTHING,我可以成功獲取一個渲染的500錯誤頁面,我可以處理嘗試獲取尚未創建的「頁面」......這對我來說似乎很奇怪。其他一切都給我一個內部服務器錯誤。

另外,如果我去mongohq並打開我的數據庫,那麼我的模型頁面的集合已經創建並且唯一性的索引已經創建,即使我無法訪問創建的頁面或者查看模型在我的應用程序...

高興地提供任何其他信息...如此卡住。

回答

2

我們對MongoHQ使用了heroku,但在我們的情況下,我們自己創建了MongoHQ帳戶,所以我們的解決方案有點不同。 現在,我們使用Redis插件,在這種情況下,我們使用heroku env變量連接到Redis。 當您創建一個新的插件,Heroku的增加一堆ENV變量,你可以從你的Node.js應用程序訪問很容易這樣做:

process.env.NAME_OF_VAR 

在Redis的的情況下,去這個名字的變種是REDISTOGO_URL所以我們的代碼看起來像

process.env.REDISTOGO_URL 

對於MongoHQ的環境變量似乎是MONGOHQ_URL

你可能需要做一些分析。 Heroku有一些Ruby的文檔,在這裏http://devcenter.heroku.com/articles/mongohq#using_the_mongo_ruby_driver應該可以幫助你實現它。

關於在快速應用程序中的位置。我們正在做app.js上的所有設置,這是我們在應用程序中的入口點。

希望這會有所幫助。

+0

嘿,非常感謝您的意見。我會在接下來的幾天內給出這個鏡頭並報告。 – tuddy

+1

是的,只是沒有通過這件事!除了在我的主文件'mongoose.connect(process.env.MONGOHQ_URL);'和模式'mongoose.connect(process.env.MONGOHQ_URL);'中添加變量之外,還有什麼需要嗎?我做了附加和應用程序在本地工作。日誌並沒有太多的說法,當我嘗試做任何事情時,我基本上只有500個人。我得到'內部服務器錯誤'的大多數東西,除了一些網址,我有自定義錯誤消息將顯示自定義500視圖...所以它有點工作,我很確定它只是不訪問數據庫。 – tuddy

+0

好吧,很確定這是一個路線的事情,看起來像我可以訪問數據庫實際上罰款。這個答案有幫助。謝謝。 – tuddy

相關問題