Ошибка порта Node.js в стеке кедра Heroku - PullRequest
18 голосов
/ 21 сентября 2011

Я запускаю базовое приложение Express в Node.js и пытаюсь развернуть его в Heroku.Локально приложение работает нормально, и я считаю, что моя установка с Heroku прошла успешно до запуска сервера, где я получаю следующую ошибку:

2011-09-21T16:42:36+00:00 heroku[web.1]: State changed from created to starting
2011-09-21T16:42:39+00:00 app[web.1]: Express server listening on port 3000 in production mode
2011-09-21T16:42:40+00:00 heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 3000, should be 12810 (see environment variable PORT)
2011-09-21T16:42:40+00:00 heroku[web.1]: Stopping process with SIGKILL
2011-09-21T16:42:40+00:00 heroku[web.1]: Process exited

это все, что у меня есть в моем app.js

app.listen(3000);

Я также запустил это, как уже упоминалось при начале работы Heroku.

$ heroku config:add NODE_ENV=production
Adding config vars:
NODE_ENV => production

Я считаю, что мне просто нужно настроить порт для производства?Благодаря.

1 Ответ

74 голосов
/ 21 сентября 2011

Можете ли вы показать весь раздел кода, где вы звоните listen?Вы должны проверять переменную среды процесса PORT, а не просто задавать ее в 3000. Из их документов :

var port = process.env.PORT || 3000;
app.listen(port, function() {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...