2011-09-27 7 views
4

mongoDB에 데이터를 저장하는 Express를 사용하는 Node.js 앱이 있습니다 (로컬).Node.js - Heroku에서 MongoHQ를 사용하여 MongoDB에 연결

이제 삼나무 스택에서 성공적으로 heroku로 푸시되고 서버가 실행 중입니다. 터미널을 통해 mongohq 애드온을 추가했습니다.

지금 ... 어떻게 mongoDB를 통해 내 응용 프로그램에 연결하여 사용합니까 ?? 나는 이것에 대한 온라인 튜토리얼을 보지 못했다. 나에게 하나를 가르키거나 구성을 추가 할 위치를 결정할 수 있다면 크게 감사하겠습니다!

감사합니다.

업데이트 : 나는 (실제 MYPASSWORD 값과 MYDBNUMBER와 함께 다음 시도했습니다

:도 시도 내 schema.js (에서 routes.js에서

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

영웅을 사용하여

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

my 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 만 성공합니다. 사실, 내가 시도하면/페이지/아무것도 성공적으로 렌더링 된 500 오류 페이지를 얻을 수있는 시도가 만든 '페이지'를 얻지 못했습니다 ... 그게 나에게 이상한 것 같습니다. 다른 모든 것은 나에게 내부 서버 오류를 준다.

또한 mongohq에 가서 데이터베이스를 열면 내 모델 페이지의 컬렉션이 만들어졌으며 독창성에 대한 색인이 만들어졌습니다. 심지어 만들 페이지에 액세스 할 수 없었습니다. 내 응용 프로그램에서 모델을 볼 ...

다른 정보를 제공하기 위해 기꺼이 ... 너무 붙어.

답변

2

우리는 MongoHQ에 대해 heroku를 사용하고 있지만 우리의 경우 우리는 MongoHQ 계정을 자체적으로 만들었 기 때문에 우리의 솔루션은 약간 다릅니다. 이제 우리는 Redis 플러그인을 사용하고 있으며이 경우 heroku env 변수를 사용하여 Redis에 연결합니다. 새 플러그인을 만들 때, Heroku가 당신의 Node.js를 응용 프로그램에서 액세스 할 수있는 ENV 변수의 무리가 쉽게 일을 추가합니다 : var에가 REDISTOGO_URL이의 이름을 갈 레디 스의 경우

process.env.NAME_OF_VAR 

을 MongoHQ는 ENV 변수 당신은 몇 가지 분석을 수행해야 할 수 있습니다 MONGOHQ_URL

것으로 보인다 이처럼 우리의 코드는

process.env.REDISTOGO_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을 얻는다. 나는 내부 서버 오류를 사용자 정의 오류 메시지가 표시됩니다 일부 URL을 제외하고 대부분의 것들을 얻을 수있는 사용자 정의 500보기 ... 그래서 일하고있어, 난 정말 DB에 액세스하지 확신 해요. – tuddy

+0

좋아, 실제로 경로 문제 일 거예요, 실제로 DB 벌금에 액세스 할 수있는 것처럼 보입니다. 이 대답은 도움이되었습니다. 감사. – tuddy

관련 문제