2013-08-30 96 views
0

您好,我正嘗試在我的expressjs應用程序上綁定mongodb服務與Appfog。無法在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插件創建一個包含兩個文檔的集合。

當我去Windows控制檯和寫入AF更新MYAPP它拋出我的下一個錯誤:

Cannot read property '0' of undefined

這是原因process.env.VCAP_SERVICES是不確定的。

我正在調查,可能是我的mongodb服務被錯誤綁定。

之後,我想的MongoDB服務從Windows控制檯像下面綁定:

af bind-service mongodb myapp 

但它引發我一個錯誤:

Service mongodb and App myapp are not on the same infra

在這一點上我不知道什麼可以我做。

回答

0

我有同樣的問題。

什麼固定對我來說:

轉到:控制檯>服務>(重新)再次啓動的MongoDB服務

運行相同的命令。

再次推送。

它應該工作。