Heroku Node.js Ошибка R10 (время ожидания загрузки) → Не удалось привязать веб-процесс к $PORT в течение 60 секунд после запуска
Я нашел дюжину решений для приложений с поддержкой Express с настройкой порта для прослушивания.
Но у меня есть приложение, которое не использует Express и на самом деле ничего не слушает.
И через 60 секунд после его успешного запуска я получаю сообщение Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
.
Как я могу обойти это? Спасибо.
Ответы
Ответ 1
После многих поисковых запросов я решил npm install express
и добавить
var express = require('express');
var app = express();
app.set('port', (process.env.PORT || 5000));
//For avoidong Heroku $PORT error
app.get('/', function(request, response) {
var result = 'App is running'
response.send(result);
}).listen(app.get('port'), function() {
console.log('App is running, server is listening on port ', app.get('port'));
});
Это зафиксировало ошибку, хотя мне не нравится добавлять выражение, чтобы избежать одной ошибки. Если кто-то найдет лучшее решение, сообщите мне.
Ответ 2
Если ваше приложение не прослушивает какой-либо порт, тогда вы должны использовать другой тип приложения в Procfile, я имею в виду в Procfile, который у вас есть:
web: node app.js
замените его на:
worker: node app.js
"веб-тип" означает, что ваше приложение ДОЛЖНО прослушать какой-то порт
Ответ 3
Другим способом было бы изменение динамиков из Интернета (стандартная настройка независимо от настроек в Procfile) для рабочего с помощью этих команд:
heroku ps:scale web=0
heroku ps:scale worker=1
Иногда Heroku игнорирует настройки в Procfile.
Ответ 4
У меня такая же проблема:
Ошибка R10 (время ожидания загрузки) → Не удалось привязать веб-процесс к $PORT в течение 60 секунд после запуска
Я пробовал много вещей.
Следующие действия без использования выражения:
http.createServer(onRequest).listen(process.env.PORT || 6000)