Мой app.js файл выглядит следующим образом:Node.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.");
Когда я запустить приложение локально, он выполняет отлично, выполнив:
node app.js
Однако, когда я нажимаю приложение к облаку литейный, используя следующую команду:
vmc push [app_name] --runtime=node06
Я получаю следующее сообщение об ошибке:
Creating Application: OK Uploading Application:
Checking for available resources: OK
Processing resources: OK
Packing application: OK
Uploading (10K): OK
Push Status: OK Staging Application 'app_name': OK
Starting Application 'app_name': ..........................Error: Application [app_name] failed to start, logs information below.
====> /logs/stderr.log <====
node.js:134 throw e; // process.nextTick error, or 'error' event on first tick ^ReferenceError: mName is not defined at Object. (/var/vcap/data/dea/apps/app_name-0-6996d737ed319bcffaf696d653423d7c/app/main.js:6:1) at Module._compile (module.js:411:26) at Object..js (module.js:417:10) at Module.load (module.js:343:31) at Function._load (module.js:302:12) at Array. (module.js:430:10) at EventEmitter._tickCallback (node.js:126:26)
Похоже, что свойства, которые я поставил в глобальный объект в config.js не переносится в main.js. Я проверил это, изменив main.js, чтобы явно ссылаться на global.mName, а не просто на mName, и эта ошибка исчезла, но затем снова стала жаловаться на глобальное свойство объекта.
Поскольку все работает нормально локально без явного «глобального». ссылка, я не думаю, что мне нужно будет явно ссылаться на «глобальные». для этих переменных. Здесь что-то не хватает? Любая помощь приветствуется.
Спасибо!