1

私はcloud9 ideコーディングの新しいプロジェクトを使用しています。cloud9ide から cloudfoundry にデプロイするとき。エラーがあります

アプリケーションを開始できませんでした。CloudFoundry は別のポートを使用してリッスンすることに注意してください。「listen()」を呼び出すときは、「.listen(process.env.PORT || process.env.VCAP_APP_PORT)」のように使用します。

これが私のソースです

var ポート = (process.env.VMC_APP_PORT || 3000);

var ホスト = (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) {

res.writeHead(200, {'Content-Type': 'text/plain'});

res.end('Hello World\n' + env); }).listen(ポート、ホスト);

mongoオブジェクトを取得すると、このソースにエラーが発生します

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

しかし、この行のデプロイは成功していません

私を助けてください !!

本当にありがとう

4

1 に答える 1

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そのため、そのように呼び出されるエントリはありません。変数を指定するとconsole.logprocess.envリストされているサービスさえありません。

そのため、アプリ用に mongodb サービスをインストールする必要があります。これを行う最速の方法は、CF VMC ツールを使用することです (現時点ではこれを cloud9 で実行できないため、ローカルにインストールする必要があります)。

vmc create-service mongodb --bind your_app_name

すると元気に起動します。

NBおそらく.ymlファイルでこれを修正できますが、これを行う方法がわかりません:-)

于 2012-05-21T12:40:26.223 に答える