Node.js – 使用Heroku上的MongoHQ连接到MongoDB
我有一个使用Express的Node.js应用程序,它将数据存储在mongoDB(本地)中。
现在它被成功地推到了heroku上,并且服务器正在运行。 我通过terminal添加了mongohq插件。
现在…我如何通过mongohq将mongoDB连接到我的应用程序开始使用它? 我在网上没有看到这个教程。 如果你可以指向我,或者让我开始在哪里添加configuration,我将不胜感激!
非常感谢。
更新:
我已经尝试了以下(具有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>');
我的package.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成功。 其实,如果我尝试/页面/任何我可以成功地得到一个渲染的500错误页面,我做了处理企图得到'网页',还没有被创build…这似乎有点怪异的我。 其他一切给我一个内部服务器错误。
此外,如果我去mongohq并在那里打开我的数据库,我的模型页的集合已经创build,唯一性的索引已经创build,即使我没有能够访问页面创build或查看模型我的应用…
高兴地提供任何其他信息…如此卡住。
我们正在使用对MongoHQ的Heroku,但在我们的情况下,我们自己创build了MongoHQ帐户,所以我们的解决scheme有点不同。 现在,我们使用Redis插件,在这种情况下,我们使用heroku envvariables连接到Redis。 当你创build一个新的插件时,Heroku添加了一堆你可以通过你的node.js应用程序轻松访问的envvariables:
process.env.NAME_OF_VAR
在Redis的情况下,var的名字是REDISTOGO_URL,所以我们的代码看起来像
process.env.REDISTOGO_URL
对于MongoHQ,envvariables似乎是MONGOHQ_URL
你可能需要做一些parsing。 Heroku在这里有一些Ruby的文档http://devcenter.heroku.com/articles/mongohq#using_the_mongo_ruby_driver ,这应该可以帮助你实现目标。
关于在快速应用程序中的位置。 我们正在做app.js上的所有设置,这是我们在应用程序中的入口点。
希望这可以帮助。