2011-09-27 86 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

相关问题