-2

Мое приложение работает нормально в локальном хосте, но когда я отправляю его для развертывания в другом месте, например, aws (или mcs), он не распознает путь к файлам, которые lib consign должен загружать.Каким образом эластичный beanstalk запускает код приложения nodejs?

Это то, что я ожидаю, чтобы запустить:

> [email protected] start /home/code/tmp/portal 
> NODE_ENV=development nodemon index.js 

[nodemon] 1.11.0 
[nodemon] to restart at any time, enter `rs` 
[nodemon] watching: *.* 
[nodemon] starting `node index.js` 
consign v0.1.2 Initialized in app 
+ ./controllers/homeController.js 
+ ./routes/routes.js 
Ok! Express is running... 

Трассировка ниже, что происходит на AWS, видно, что он не распознает файл homeController.js:

> [email protected] start /var/app/current 
> NODE_ENV=development nodemon index.js 

[nodemon] 1.11.0[39m 
[nodemon] to restart at any time, enter `rs`[39m 
[nodemon] watching: *.*[39m 
[nodemon] starting `node index.js`[39m 
consign v0.1.2 Initialized in app 
+ ./current/ 
+ ./current/ 
/var/app/current/app/routes/routes.js:2 
    app.get('/',   app.controllers.homeController.index.bind(app.controllers.homeController)); 
          ^

TypeError: Cannot read property 'homeController' of undefined 
    at Function.module.exports (/var/app/current/app/routes/routes.js:2:33) 
at Consign.into (/var/app/current/node_modules/consign/lib/consign.js:239:17) 
at Object.<anonymous> (/var/app/current/config/express.js:18:6) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.require (module.js:497:17) 
at require (internal/module.js:20:19) 
at Object.<anonymous> (/var/app/current/index.js:1:80) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.runMain (module.js:604:10) 
at run (bootstrap_node.js:394:7) 
at startup (bootstrap_node.js:149:9) 
at bootstrap_node.js:509:3 
[31m[nodemon] app crashed - waiting for file changes before starting...[39m 

Любая идея почему эта среда возится с этим приложением? Или как aws запускает этот код?

+0

.... ясно 'приложение' не определено в файле /var/app/current/app/routes/routes.js в строке 2. начните свое исследование там. –

+0

EBS запускает сервер EC2 на основе ваших настроек. Вы должны иметь возможность настроить его таким образом, чтобы вы могли ssh на сервере и изучать вещи оттуда. –

+0

, хотя ... кажется немного странным, что вы будете развертывать сервер и использовать nodemon в качестве способа запуска/запуска сервера. не нодемон средство разработки? –

ответ

1

Проблема произошла из-за this поведение Consign lib. Путь, используемый aws, обрабатывался неправильно, потому что он имеет строку «app» (/ var/current/app /).

Я исправил его, используя весь путь (process.cwd() + '/ app').

 Смежные вопросы

  • Нет связанных вопросов^_^