Не удается связать службу mongodb с Appfog

Привет, я пытаюсь связать службу mongodb с моим приложением expressjs с помощью Appfog.

У меня есть такой файл конфигурации:

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;

И это моя конфигурация mongodb в зависимости от среды

app.js

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 Virginia. Я также использую аддон MongoHQ для создания одной коллекции с двумя документами.

Когда я захожу в консоль Windows и пишу af update myapp, появляется следующая ошибка:

Невозможно прочитать свойство '0' неопределенного

Это связано с тем, что process.env.VCAP_SERVICES не определен.

Я исследовал это, и может случиться так, что моя служба mongodb неправильно привязана.

После этого я попытался связать службу mongodb с консоли Windows, как показано ниже:

af bind-service mongodb myapp 

Но это выдает мне следующую ошибку:

Служба mongodb и приложение myapp не находятся в одной инфраструктуре.

На данный момент я не знаю, что я могу сделать.


person RMontes13    schedule 30.08.2013    source источник


Ответы (1)


У меня такая же проблема.

Что исправило это для меня:

Перейдите к: консоль> службы> (повторно) запустить службу mongodb

Запустите ту же команду еще раз.

Нажмите еще раз.

Он должен работать.

person Jakub Langr    schedule 16.02.2014