1

我使用 cloud9 ide 编码新项目。当我从 cloud9ide 部署到 cloudfoundry 时。我有错误

应用程序无法启动。请注意,CloudFoundry 使用不同的端口来监听。调用“listen()”时,可以像“.listen(process.env.PORT || process.env.VCAP_APP_PORT)”一样使用它。

这是我的来源

var 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):空;

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

http.createServer(function (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

然后就可以正常启动了。

注意您可能可以在 .yml 文件中解决此问题,但我不知道如何执行此操作:-)

于 2012-05-21T12:40:26.223 回答