【问题标题】:Node.js application works locally but not in CloudNode.js 应用程序在本地工作,但不在云中
【发布时间】:2012-06-14 02:36:04
【问题描述】:

我的 app.js 文件如下所示:

var port = (process.env.VMC_APP_PORT || 3000);
var host = (process.env.VCAP_APP_HOST || 'localhost');
var http = require('http');
var rip = require('./config.js');

http.createServer(function (req, res) {
        //do nothing...no response expected via http
}).listen(port, host);

config.js 文件包含以下内容(以及更多内容,但为了简洁/相关性而删减):

//several global.<property_name> assignments
global.mName                    = "Application Name";
//serveral more global.<property_name> assignments
...
...
require("./main.js");

main.js 文件的开头是这样的:

console.log(mName+" >>> Loading.");

当我在本地运行应用程序时,它运行良好:

节点 app.js

但是,当我使用以下命令将应用程序推送到 Cloud Foundry 时:

vmc 推送 [app_name] --runtime=node06

我收到以下错误:

创建应用程序:确定 上传申请:
检查可用资源:OK
处理资源:OK
包装申请:OK
上传(10K):好的
推送状态:OK 暂存应用程序“app_name”:好的
启动应用程序“app_name”:..........................

错误:应用程序 [app_name] 无法启动,记录信息 下面。

====> /logs/stderr.log

node.js:134 扔 e; // process.nextTick 错误,或第一次滴答时的 'error' 事件 ^ ReferenceError: mName 未定义 在对象。 (/var/vcap/data/dea/apps/app_name-0-6996d737ed319bcffaf696d653423d7c/app/main.js:6:1) 在 Module._compile (module.js:411:26) 在 Object..js (module.js:417:10) 在 Module.load (module.js:343:31) 在 Function._load (module.js:302:12) 在阵列。 (module.js:430:10) 在 EventEmitter._tickCallback (node.js:126:26)

似乎我在 config.js 中的全局对象中设置的属性没有被带到 main.js。我通过修改 main.js 以明确引用 global.mName 而不仅仅是 mName 来验证这一点,并且该错误消失了,但是对全局对象属性的另一个引用随后开始抱怨。

因为在没有明确的“全局”的情况下,一切都可以在本地正常工作。参考,我认为我不应该明确引用“全球”。对于那些变量。我在这里缺少什么吗?任何帮助表示赞赏。

谢谢!

【问题讨论】:

    标签: node.js cloud-foundry


    【解决方案1】:

    继续,将以下 package.json 文件添加到应用程序目录的根目录:

    {
      "name":"hello-node",
      "version":"0.0.1",
      "scripts": {
        "start": "app.js"
      }
    }
    

    现在 package.json 在这种情况下为您所做的是,它告诉 cloudfoundry.com 您的执行/启动脚本文件应该是“app.js”

    你需要这个地方的原因是你还有一个“main.js”文件。 在 cloudfoundry.com 中,默认情况下 main.js 文件会覆盖您的 app.js,因此它会破坏您的工作。

    所以包含脚本对象的 package.json 解决了这个问题 :-)

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 2021-01-29
      • 2016-10-18
      • 1970-01-01
      • 2021-08-05
      • 2021-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      相关资源
      最近更新 更多