Ответ 1
Вы не можете. Heroku устанавливает переменную PORT, которую вы должны связывать, и слушает tcp/80.
Я запустил сервер node.js со следующей строкой для установки порта:
app.set('port', process.env.PORT || 8080);
Это означает, что он должен либо прочитать переменную env PORT, либо по умолчанию 8080, как это происходит при ее локальном запуске. Ни один из них не происходит на Heroku, и сервер всегда использует порт по умолчанию 80. Есть идеи, как его изменить?
heroku config
PORT: 8080
Вы не можете. Heroku устанавливает переменную PORT, которую вы должны связывать, и слушает tcp/80.
Вы должны использовать порт, открытый герою, примерно так:
port = process.env.PORT || 80
Он устанавливает порт на 80, если он как-то еще не был установлен
Heroku рассматривает веб-приложения так же, как и любое другое приложение, и не позволяет напрямую назначать порты прослушивания. Heroku назначит вашему веб-серверу динамический порт, но для ДОСТУПА к нему вам потребуется использовать порт по умолчанию (80).
В Heroku приложения полностью автономны и не полагаются на внедрение веб-сервера во время выполнения для создания веб-службы. Каждый веб-процесс просто привязывается к порту и прослушивает запросы, поступающие на этот порт. Порт для привязки назначается Heroku в качестве переменной среды PORT.
Контракт с Heroku предназначен для процесса привязки к порту для обслуживания запросов. Маршрутизаторы Herokus отвечают за направление HTTP-запросов процессу на правильный порт.
В моем случае heroku прослушивал порт HTTPS по умолчанию: 443
и он не был виден через heroku config:get PORT
.
Вы можете сделать, например:
const PORT = process.env.PORT || 5001;
app.listen(PORT, () => console.log('Server is listening on port ${PORT}...'));