2012-05-19 2 views
1

I используя облако9 ide кодировка новый проект. Когда я развертываю на cloudfoundry из cloud9ide. У меня есть ошибкаcloud9 + mongodb + nodejs

Приложение не удалось запустить. Обратите внимание, что CloudFoundry использует другой порт для прослушивания. При вызове 'listen()' используйте его как '.listen (process.env.PORT || process.env.VCAP_APP_PORT)'.

Это мой источник

вар порт = (process.env.VMC_APP_PORT || 3000);

var host = (process.env.VCAP_APP_HOST || 'localhost');

var http = require ('http');

var env = process.env.VCAP_SERVICES? JSON.parse (process.env.VCAP_SERVICES): null;

var mongodata = env ['mongodb-1.8'] [0] ['credentials'];

http.createServer (функция (REQ, разреш) {

res.writeHead (200, { 'Content-Type': 'текст/обычный'});

res.end ('Привет World \ n '+ env); }). Listen (порт, хост);

Этот источник имеет ошибку, когда я получаю объект Монго

уаг mongodata = окр [ 'MongoDB-1,8'] [0] [ 'полномочия'];

Но не эта линия развертывания успешно

Пожалуйста, помогите мне !!

Большое спасибо

+0

Это, по-видимому, означает, что 'VCAP_SERVICES' недоступен. Попробуйте удалить эту строку. Что вы видите в результатах при посещении веб-сервера? У вас есть «res.end ('Hello World \ n' + env); ', так что вы сможете увидеть, действительно ли эти вещи действительно определены в' env' или нет. Это похоже на то, что вы делаете, поэтому вы должны знать. – Ashe

+0

Должна ли первая строка быть 'var port = (process.env.PORT || process.env.VCAP_APP_PORT)' в соответствии с сообщением об ошибке? –

ответ

0

Поскольку ошибка в консоли Cloud9 вероятно, говорит вам (как он говорит мне, когда я пытаюсь это :-)):

haalasdoallalsakdl (CloudFoundry): [5/6] Crash log 
============/logs/stderr.log============ 
node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
TypeError: Cannot read property '0' of undefined 
    at Object.<anonymous> (/var/vcap/data/dea/apps/haalasdoallalsakdl-0-8be0d413a9ec29a79f665d388ce414bd/app/server.js:7:35) 
    at Module._compile (module.js:432:26) 
    at Object..js (module.js:450:10) 
    at Module.load (module.js:351:31) 
    at Function._load (module.js:310:12) 
    at Array.0 (module.js:470:10) 

Так нет никакого входа в VCAP_SERVICES называется как это. Когда I console.log переменная process.env, в ней нет ни одной услуги.

Таким образом, вам нужно будет установить службу mongodb для своего приложения. Самое быстрое сделать это с помощью инструментов CF VMC (не может запустить это в cloud9 на данный момент, так что вы должны будете установить это локально):

vmc create-service mongodb --bind your_app_name 

Тогда это будет запустить штраф.

N.B. Вероятно, вы можете исправить это в файле .yml, но я не знаю, как это сделать :-)

+0

>> vmc create-service mongodb --bind your_app_name при развертывании формы local не имеет ошибки, но при развертывании с помощью c9 такая же ошибка – user1404596

+0

Я просто попробовал это, и когда я поставил приложение, с которым я пытаюсь установить Cloud9 вместо 'your_app_name' работает отлично. –

 Смежные вопросы

  • Нет связанных вопросов^_^