2013-08-30 5 views
0

안녕하세요 저는 AppFog로 내 expressjs 응용 프로그램에 mongodb 서비스를 바인딩하려고합니다.AppFog에서 mongodb 서비스를 바인딩 할 수 없습니다.

은이 같은 설정 파일이 있습니다

config.js

var config = {} 

config.dev = {}; 
config.prod = {}; 

//DEV 
config.dev.host = "localhost"; 
config.dev.port = 3000; 
config.dev.mdbhost = "localhost"; 
config.dev.mdbport = 27017; 
config.dev.db = "detysi"; 

//PROD 
config.prod.service_type = "mongo-1.8"; 
config.prod.json   = process.env.VCAP_SERVICES ? JSON.parse(process.env.VCAP_SERVICES) : ''; 
config.prod.credentials = process.env.VCAP_SERVICES ? config.prod.json[config.prod.service_type][0]["credentials"] : null; 
config.prod.mdbhost  = config.prod.credentials["host"]; 
config.prod.mdbport  = config.prod.credentials["port"]; 
config.prod.db   = config.prod.credentials["db"]; 
config.prod.port   = process.env.VCAP_APP_PORT || process.env.PORT; 

module.exports = config; 

을 그리고 이것은

app.js

환경의 따라 내 MongoDB의 conf의입니다
if (process.env.VCAP_SERVICES) { 
    server = new Server(config.prod.mdbhost, config.prod.mdbport, { auto_reconnect: true }); 
    db = new Db(config.prod.db, server); 
} else { 
    server = new Server(config.dev.mdbhost, config.dev.mdbport, { auto_reconnect: true }); 
    db = new Db(config.dev.db, server); 
} 

https://console.appfog.com에서 서비스를 수동으로 바인딩합니다. 내 앱은 인프라 AWS 버지니아를 사용합니다. 또한 MongoHQ addon을 사용하여 두 개의 문서로 하나의 컬렉션을 만듭니다.

내가 Windows 콘솔에 가서 나에게 다음 오류가 발생 AF 업데이트 myapp와 쓰기 :

Cannot read property '0' of undefined

이것은 원인 process.env.VCAP_SERVICES는 정의되지 않습니다.

나는 그것을 조사하고 있었고 mongodb 서비스가 잘못 바인딩되어있을 수 있습니다.

는 그 후 나는 같은 아래의 창 콘솔에서 MongoDB의 서비스를 결합하는 시도 :

af bind-service mongodb myapp 

그러나 그것은 나에게 다음 오류가 발생합니다 : 내가 무엇을 할 수 알고하지는이 시점에서

Service mongodb and App myapp are not on the same infra

을 나는한다.

답변

0

나는 동일한 문제가있었습니다.

이동하기 : 나를 위해 그것을 고정 무엇

콘솔> 서비스> (재)는 MongoDB의 서비스

실행 동일한 명령을 다시 시작합니다.

다시 누르십시오.

제대로 작동합니다.

관련 문제