cloud9 + mongodb + nodejs
我使用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):null;
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(port,host);
当我得到mongo对象时,此源有错误
var mongodata = env ['mongodb-1.8'] [0] ['credentials'];
但是没有这条线部署成功
请帮帮我 !!
非常感谢
由于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.log
process.env
变量,甚至没有列出任何服务。
所以你必须为你的应用程序安装mongodb服务。 最快的做法是通过CF VMC工具(目前无法在cloud9中运行此工具,因此您必须在本地安装此工具):
vmc create-service mongodb --bind your_app_name
然后它会启动正常。
注意你可以在.yml文件中解决这个问题,但我不知道该怎么做:-)
链接地址: http://www.djcxy.com/p/52507.html上一篇: cloud9 + mongodb + nodejs
下一篇: centos