Не могу связать сервис 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 Conf в зависимости от окружающей среды
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/, мое приложение использует Infra AWS Virginia. Я также использую аддон MongoHQ для создания одной коллекции с двумя документами.
Когда я иду в консоль Windows и пишу обновление myapp, это выдает мне следующую ошибку:
Невозможно прочитать свойство '0' из неопределенного
Это причина того, что process.env.VCAP_SERVICES не определен.
Я исследовал это, и, возможно, мой сервис mongodb неправильно привязан.
После этого я попытался привязать сервис mongodb из консоли Windows, как показано ниже:
af bind-service mongodb myapp
Но это бросает мне следующую ошибку:
Сервис mongodb и приложение myapp не совпадают
На данный момент я не знаю, что я могу сделать.
1 ответ
У меня такая же проблема.
Что исправило это для меня:
Перейдите: консоль> службы>(пере) запустить службу mongodb
Запустите ту же команду еще раз.
Нажмите еще раз.
Он должен работать.