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)