node.js - 云9+mongodb+nodejs

标签 node.js mongodb cloud9-ide

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

Application failed to start. Please note that CloudFoundry uses a different port to listen to. When calling 'listen()' use it like '.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 文件中修复此问题,但我不知道如何执行此操作:-)

关于node.js - 云9+mongodb+nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10661981/

相关文章:

javascript - Visual Studio Code - 如何调试 node.js 路由?

javascript - Mongodb findOneAndUpdate 函数正在插入新文档

python - 如何在 Cloud9 上为 Python 安装 opencv?

javascript - Stripe 未定义;请修复或添加/*全局 Stripe*/

javascript - 使用 twitter API 有时会出错

node.js - 无法上传图像文件

jquery - 我们可以将 mysql 与 node.js 一起使用吗

mongodb - findAndModify 和 findOneAndUpdate 有什么区别?

java - MongoDB:错误代码 - 10068,无效运算符:$oid

node.js - 为什么Cloud9中会重复出现 'Could not update source'标签?