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的confif (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
在這一點上我不知道什麼可以我做。