Я пытаюсь развернуть мой проект Node.js в OpenShift и получить 503 при попытке просмотра сайта.Как выяснить, какая зависимость отсутствует в проекте Node.js
Я знаю из исследования, что это указывает на проблему с моим проектом веб-сервера. Проверяя журналы, я решил, что это проблема с отсутствующей зависимостью. Тем не менее, журналы не появляются, чтобы сказать мне что:
module.js:340
throw err;
^
Error: Cannot find module '/var/lib/openshift/551c63f85973ca05430002b8/app-root/runtime/repo/server.js'
Я проверил, что каждый пакет, который «требуется» мой веб-сервер присутствует как в файле package.json и присутствует в node_modules папка.
{
"name": "NekoList",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "~1.12.4",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"ejs": "~2.3.1",
"express": "~4.12.4",
"mongoose": "^4.0.3",
"morgan": "~1.5.3",
"node-gyp": "^2.0.1",
"secure-random": "^1.1.1",
"serve-favicon": "~2.2.1"
}
}
При запуске npm install
или npm update
я не получаю никаких ошибок. Я получаю предупреждения о неудовлетворительной зависимости от debug ~2.2.0
, но у меня есть это же предупреждение в другом проекте, и это не вызывает критического сбоя. У меня нет кода, который использует этот модуль. Это просто потому, что это было частью шаблона.
[email protected] node_modules/node-gyp/node_modules/mkdirp/node_modules/minimist
npm WARN unmet dependency /var/lib/openshift/551c63f85973ca05430002b8/app-root/runtime/repo/node_modules/express/node_modules/finalhandler requires [email protected]'~2.2.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
Кроме того, проект отлично работает в моей локальной среде разработки с использованием встроенного сервера Webstorm.
Я ищу, чтобы узнать, что я могу сделать, чтобы исправить, или, по крайней мере, пролить свет на корень проблемы.
Заранее спасибо.
[Edit] Итак, основываясь на том, что говорит Саба Хасан, похоже, узел пытается запустить nonexistant файл server.js
, вместо точки входа, что я определил, bin/www
Итак, я добавил файл с именем server.js
с базовым примером сервера. Openshift все еще не может найти файл. Такое же сообщение об ошибке. [/ Edit]
[Решение] Я пришел к выводу, что основное предположение по этому вопросу неверно. Я одобрил ответ, объясняющий, почему OpenShift ищет не туда место для точки вставки. Однако я начал этот поток, чтобы выяснить, почему я получаю недостающую ошибку зависимостей. Даже после реализации решения, приведенного ниже, я все еще получаю то же сообщение об ошибке, о том, что отсутствует зависимость.
Объяснение заключается в следующем:
По какой-то причине, любая проблема с точкой вставки файла или любого файла, который он требует отбросит назад ошибку о том, что модуль точка вставки файла отсутствует.
У меня была переменная в одном файле, которая не была настроена правильно для OpenShift, и наиболее полезным сообщением об ошибке, содержащимся в журналах OpenShift, было то, что отсутствовал корневой модуль.
Заключение Ошибки «отсутствия зависимости» могут означать, что у вас есть какая-то логическая ошибка, где-то во всем вашем проекте. [/ Solution]
Это действительно дубликат вашего другого вопроса http://stackoverflow.com/questions/30637181/openshift-with-nodejs-isnt-respecting-the -path-to-my-server-file-in-package-jso –
Прочтите более внимательно. Я обратился к этой проблеме –