Проблем с порта на Node.js на Heroku cedar stack

Изпълнявам основно приложение 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

Вярвам, че просто трябва да настроя порта за производство? Благодаря.


person tuddy    schedule 21.09.2011    source източник


Отговори (1)


Можете ли да покажете цялата част от кода, където извиквате listen? Трябва да проверявате за променливата на средата на процеса PORT, а не просто да я кодирате твърдо до 3000. От техните документи:

var port = process.env.PORT || 3000;
app.listen(port, function() {
person Femi    schedule 21.09.2011
comment
Супер, актуализирах публикацията. Трябва ли по някакъв начин да превключа към порт 12810 за производство? Благодаря - person tuddy; 21.09.2011
comment
А, добре. Опитайте да извикате слушане, използвайки логиката, която показах по-горе, и вижте дали работи. - person Femi; 21.09.2011
comment
това работи, но какво прави process.env.PORT? Кой го задава? - person Alexis; 04.12.2012
comment
Heroku прави: те инжектират конфигурационните променливи, когато стартират уеб dyno, и това е една от променливите, които инжектират. - person Femi; 04.12.2012
comment
не мога да намеря променливата PORT в променливите на средата, трябва да я спомена в командата Procfile -p. Как мога да направя това? - person rupinderjeet; 08.07.2016