2013-09-06 1 views
0

js with express.js appfog에 배포했지만 MongoHQ에있는 mongodb 컬렉션을 AppFog mongodb 서비스에 연결하는 방법을 알 수 없거나 모르겠습니다.MongoHQ를 AppFog mongodb 서비스에 연결하는 방법

MongoHQ처럼 당신에게 몽고 URI를 제공

mongodb://<user>:<password>@<hostname>:<port>/<databasename> 

AppFog의 MongoDB의 서비스는 당신에게 앱이 MongoDB를 연결할 모든 conf의 변수를 포함하는 환경 변수라는 VCAP_SERVICE을 제공하지만, 다른 손에 난 내 MongoDB를이 MongoHQ에있는 모음집과 나는이 MongoURI를 AppFog의 mongodb 서비스에 지정하는 방법을 모르겠다.

당신이 나를 이해하고 있기를 바랍니다.

답변

1

제대로 이해하면 두 가지 방법으로 문제를 해결할 수 있습니다. 첫째, MongoHQ 애드온을 활성화하고 AppFog가 MongoHQ 샌드 박스를 생성합니다. 당신은 당신이 이미 MongoDB의 컬렉션을 가지고 말했다 때문에 당신은 MongoHQ 웹 UI를 통해 AppFog 제공하는 일에 원래의 컬렉션을 복제 할 수 있습니다,

if(process.env.VCAP_SERVICES){ 
    var env = JSON.parse(process.env.VCAP_SERVICES); 
    var mongo = env['MONGOHQ_URL']; 
} 

: 당신은에 의해 MongoHQ URL을 얻을 수 있습니다.

다른 해결책은 AppFog의 MongoHQ 부가 기능에 대해 걱정하지 않아도됩니다.

mongoose.connect(YOUR_MONGOHQ_URL); 

가 사실은 내가 최근에 비슷한 문제를 가지고 나는 성공적으로 내 nodejs +이 방법을 사용 Heroku가에 응용 프로그램을 표현 배포 : 그냥 직접 MongoHQ (나는 몽구스를 사용하지만 기본 드라이버가 비슷한 일을한다)에 연결합니다. 나는 이미 MongoDB 샌드 박스를 가지고 있기 때문에 Heroku에서 mongohq 애드온을 사용하도록 신경 쓰지 않았습니다.

UPDATE 는 최근 MongoHQ의 샌드 박스에 연결하기 위해 MongoDB를 기본 드라이버와 monk를 사용하여 Heroku가에서 응용 프로그램의 몇 가지를 배치했다. 코드는 다음과 같습니다.

var monk=require('monk'); 
var db=monk("mongodb://username:[email protected]:port/YOURDB"); 
+0

비슷한 경우에 멈추었습니다. 연결이 제대로 작동하지만 mongodb.authenticate (...) 호출이 실패합니다. – AksharRoop

+0

@AksharRoop 응답에서 일부 업데이트를 추가했습니다. 도움이 되나요? – afterglowlee

+0

나는 그것을 시험해 볼 것이다, 고마워. – AksharRoop