Развертывание первого приложения в Heroku: ошибка R10 (время загрузки) -> Веб-процессу не удалось привязаться к $ PORT в течение 60 секунд после запуска - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь развернуть приложение Express / React / Mongo в Heroku впервые.

Ошибка с ошибкой 503. В журналах говорится следующее:

Ошибка R10 (Тайм-аут загрузки) -> Веб-процессу не удалось привязаться к $ PORT в 60 секунд запуска

Я установил следующую переменную порта в корневом файле index.js:

const port = process.env.PORT || 3000;

и используйте его здесь:

app.listen(port, function(){
    console.log("Express server is running on port " + port)
}) 

Он выводит «Экспресс-сервер работает на порту 3000», что говорит о том, что он не выбирает переменную среды.

Я пытался следовать инструкциям здесь: https://coursework.vschool.io/deploying-mern-with-heroku/

Ключевая часть, которой я являюсь, может быть неправильным пониманием:

С Heroku вам нужно установить переменные окружения на вашем новом создал приложение Heroku, чтобы оно знало, какие значения использовать в проекте развертывается. Вы можете сделать это двумя способами, либо онлайн на сайте Heroku, или через командную строку используя CLI-героку. Так как мы не создание нового удаленного репозитория Heroku со всеми переменными среды нужно будет добавить через Heroku.com.

Я понял, что должен установить переменную окружения Heroku.com, что, я думаю, я сделал так:

enter image description here

Чего мне не хватает?

РЕДАКТИРОВАТЬ: я попытался установить theprocess.env.PORT = 8000 из CLI Heroku:

heroku config:set process.env.PORT=8000

Но получите следующую ошибку:

»Ошибка: отсутствует обязательный флаг:» -a, приложение APP для запуска команда против »Дополнительная справка по --help

Вот полный index.js:

const express = require('express'),
    cors = require('cors'),
    app = express(),
    port = process.env.PORT || 3000;
    bodyParser = require('body-parser'),
    todoRoutes = require('./routes/todo'),
    path = require("path");


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(cors());
app.use(express.static(path.join(__dirname, "client", "build")))

app.get('/', function (req, res){
    res.send('Root route')
})

app.use('/api/todos', todoRoutes);

app.get("*", (req, res) => {
    res.sendFile(path.join(__dirname, "client", "build", "index.html"));
});

app.listen(port, function(){
    console.log("Express server is running on port " + port)
})

1 Ответ

0 голосов
/ 11 ноября 2018

Во время развертывания на Heroku у меня работал локальный сервер разработки. Попытка повторного развертывания после остановки сервера разработки, и это сработало. Локальные серверы вмешивались в переменные среды при развертывании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...