Установка порта для сервера node.js на Heroku

Я запустил сервер node.js со следующей строкой для установки порта:

app.set('port', process.env.PORT || 8080);

Это означает, что он должен либо прочитать переменную env PORT, либо по умолчанию 8080, как это происходит при ее локальном запуске. Ни один из них не происходит на Heroku, и сервер всегда использует порт по умолчанию 80. Есть идеи, как его изменить?

heroku config
PORT: 8080

Ответы

Ответ 1

Вы не можете. Heroku устанавливает переменную PORT, которую вы должны связывать, и слушает tcp/80.

Ответ 2

Вы должны использовать порт, открытый герою, примерно так:

port = process.env.PORT || 80

Он устанавливает порт на 80, если он как-то еще не был установлен

Ответ 3

Heroku рассматривает веб-приложения так же, как и любое другое приложение, и не позволяет напрямую назначать порты прослушивания. Heroku назначит вашему веб-серверу динамический порт, но для ДОСТУПА к нему вам потребуется использовать порт по умолчанию (80).

В Heroku приложения полностью автономны и не полагаются на внедрение веб-сервера во время выполнения для создания веб-службы. Каждый веб-процесс просто привязывается к порту и прослушивает запросы, поступающие на этот порт. Порт для привязки назначается Heroku в качестве переменной среды PORT.

Контракт с Heroku предназначен для процесса привязки к порту для обслуживания запросов. Маршрутизаторы Herokus отвечают за направление HTTP-запросов процессу на правильный порт.

Ссылка: Принципы исполнения Heroku - веб-серверы

Ответ 4

В моем случае heroku прослушивал порт HTTPS по умолчанию: 443 и он не был виден через heroku config:get PORT.

Ответ 5

Вы можете сделать, например:

const PORT = process.env.PORT || 5001;

app.listen(PORT, () => console.log('Server is listening on port ${PORT}...'));