Я развернул свое приложение на Heroku. Это приложение node.js + express + socket.io, и это package.json
файл
{
"name": "game_test",
"author": "Ilya",
"description": "A test app for our board game",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.0.6",
"jade": "*",
"socket.io" : "*"
},
"engines": {
"node": "0.8.14"
}
}
Вот журнал, который я получаю:
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
Что это значит?
heroku restart
запустить его снова, чтобы увидеть, как он снова вылетает.Ответы:
Нашел решение для меня здесь: ошибка Heroku + node.js (веб-процесс не смог привязаться к $ PORT в течение 60 секунд после запуска)
В моем случае мое приложение вылетело из-за того, что я жестко установил ПОРТ вместо того, чтобы использовать порт, который устанавливает динамический герой, к которому можно получить доступ с помощью
process.env.PORT
app.listen(process.env.PORT || 3000, function(){ console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env); });
источник
У меня была аналогичная проблема с моим приложением, у меня возникла проблема после миграции БД, после того, как я попробовал множество вариантов, мне помогло следующее:
(Использование Heroku toolbelt для Mac)
источник
В моем случае я обнаружил ту же ошибку, потому что на моем локальном компьютере существует разница в версиях node и npm, определенная в версии package.json.
"engines": { "node": "0.8", "npm": "1.2.x" }
когда я проверяю использование
node --version : v0.10.41 npm --version : 1.4.29
когда я обновляю свой package.json до
"engines": { "node": "0.10.41", "npm": "1.4.29" }
Работает нормально :)
источник
в моем случае добавление
process.env.PORT || 3000
к моему http-серверу скрипта разрешено. В моем журнале heroku сообщается об ошибке «H20» и статусе HTTP 503.источник
У меня была эта проблема, единственная проблема заключалась в том, что мой Procfile был таким
и я изменился на
единственной проблемой были пробелы
источник
В моем случае мой Procfile указывал на неправильный файл (bot.js, который я использовал ранее), поэтому, как только я его обновил, ошибка исчезла.
источник
при использовании hapi18 я обнаружил, что вынул поле «host» и установил порт:
port: process.env.PORT || 5000
сделали свое дело.источник
Также проверьте подключение к базе данных. Я забыл изменить подключение к базе данных с localhost, и это привело к сбою моего приложения после того, как оно было отправлено на heroku.
источник
Я столкнулся с той же проблемой, и ни один из приведенных выше ответов мне не помог. Я запустил:
и в package.json добавьте раздел двигателей с версией вашего узла:
{ "name": "myapp", "description": "a really cool app", "version": "1.0.0", "engines": { "node": "6.11.1" } }
источник
Старый поток, но я исправил эту проблему, установив для константы PORT значение process.env.PORT ||
По какой-то странной причине он хотел сначала поискать на Env.
источник
В моем случае я получил эту ошибку, потому что я отказываюсь добавлять Procfile в мое приложение node js, а мой «main»: «app.js» изначально указывал на другой файл js как на основной. Так что сделайте эти изменения, исправьте это для меня
источник
У меня была опечатка
const PORT = process.env.PORT||'8080';
раньше был
const PORT = process.env.port||'8080';
источник
В моем случае я забыл установить базу данных env для развертывания. вы можете установить env с помощью этой команды (я использую mLab для сервера MongoDB)
конфигурация heroku: установить MONGO_URI = 'mongodb: // address'
источник
Для меня это был Package.json, он был пуст от зависимостей, хотя я думал, что я их установил ... поэтому мне пришлось переустановить их с опцией --save в конце и проверить, что они были добавлены в package.json ... а затем нажмите еще раз, и это сработало.
источник
Если вы запускаете сервер узла локально
nodemon
, как я, и он работает локально, попробуйтеnpm start
. Nodemon не сообщал мне об ошибках, но npm start объяснил мне многие из них понятным образом, и я мог решить их, следуя другим сообщениям здесь. Надеюсь, это кому-то поможет.источник
В моем случае в разделе
package.json
файла сценария не было команды запуска . Когда я создавалpackage.json
файл с помощью,npm init
я не создавал команду запуска сценария. Итак, я зашел вpackage.json
файл, в разделе скриптов добавил новую запись:"scripts": { "start": "node index.js" },
Сохранил и загрузил в Heroku, и это сработало.
источник
Пароль содержал% сломал его для меня.
источник
Мой порт был настроен на
config.httpPort
который разрешается80
. Я исправил это следующим образом:const PORT = process.env.PORT || config.httpPort; app.listen(PORT, ...)
Большое спасибо, прошлой ночью я потратил кучу времени зря.
источник
Код ошибки H10 может означать много разных вещей. В моем случае первый раз был потому, что я не знал, что Heroku несовместим с Sqlite3, второй раз потому, что я случайно отправил обновление с аналитикой Google, работающей как в разработке, так и в производстве.
источник
У меня такая же ошибка, как «сбой приложения» и ошибка H10, и в журналах приложения heroku не отображается много информации, связанной с причинами сообщения об ошибке. Затем я перезапустил дино в heroku, а затем он показал ошибку, указав дополнительную фигурную скобку в одном из файлов index.js в моей настройке. Проблема была устранена после удаления и повторного развертывания приложения на heroku.
источник
Более
.env
старый поток, но для меня я не устанавливал свои вары в консоли Heroku.источник
Я использовал body-Parser, который выдает исключение
const bodyParser = require('body-Parser') //Bodyparser Middleware app.use(bodyparser.json())
намерен использовать
//Bodyparser Middleware app.use(express.json())
это решило мою проблему
источник
Я хочу зарегистрировать здесь свое решение этой ошибки, которое было простым файлом, не обновленным для Github.
У меня есть проект с полным стеком, и мои файлы структурированы как корневой каталог для бэкэнда, так и клиентский для внешнего интерфейса (я использую React.js). Все сводилось к тому, что я по ошибке отправлял клиентскую папку только в Github, и все мои изменения, в которых была ошибка (отсутствовала запятая в экземпляре объекта в моем index.js), не были обновлены на стороне сервера. Поскольку этот Heroku получает все обновления из репозитория Github, я не мог получить доступ к своему серверу, и ошибка сохранялась. Затем все, что мне нужно было сделать, это зафиксировать и нажать в корневой каталог и обновить все изменения проекта, и все снова вернулось к работе.
источник
В моем случае у меня был код = H10 и статус = 503, потому что мой Procfile:
и я включал / сборку в .gitignore
источник
Я часами борюсь с одной и той же ошибкой, но мне удалось ее решить. Я по ошибке установил multer и aws-sdk как devDependencies, а не просто dependencies. Итак, любой, у кого есть такая же ошибка, просто дважды проверьте свой файл package.json.
Также небольшой совет для свойства движка в package.json.
enter code here //The greater or equal operators will make sure that you use the right node //version //even if your current node is greater version than npm node "engines": { "node": ">= 0.8.14" }, //insted of "engines": { "node": "0.8.14" }
источник
Я развертывал среду Python Django, когда получил эту ошибку, потому что я забыл указать имя своего приложения
web: gunicorn plaindjango.wsgi:application --log-file -
вместоplaindjango
источник