Я пытаюсь развернуть приложение 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](https://i.stack.imgur.com/1rDq3.png)
Чего мне не хватает?
РЕДАКТИРОВАТЬ: я попытался установить 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)
})