Почему мое приложение работает в разработке, а не при развертывании на heroku? - PullRequest
0 голосов
/ 19 апреля 2020

В прошлом месяце я заполнил приложение, над которым работал, как средство изучения стека MERN.

В проекте используется серверный узел / express для API-интерфейса crud для отслеживания контактов и интерфейс реакции для пользовательского интерфейса.

в процессе разработки приложение обслуживается двумя разными портами: сервер express работает на порте 5000 и сервер реагирует на свой порт по умолчанию.

, когда пришло время развертывания В этом приложении инструктор знакомит нас с особенностями хостинга на героку. мы добавляем проверку на сервер, чтобы увидеть, что представляет собой окружение, и устанавливаем express сервер для предварительно собранных ресурсов stati c из папки сборки клиента (продукт нашего реагирующего интерфейса)

if(process.env.NODE_ENV === "production") {
  app.use(express.static("client/build"))

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

we Конфигурируйте порт также условно:

const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
  console.log(`Server started on port ${PORT}`);
});

пока что просто peasy.

во время разработки, пакет, вызываемый одновременно, используется для запуска и сервера express, на котором запущен наш crud api. в качестве внешнего интерфейса реагирования, но в производстве мы используем сценарий heroku post-build для установки реагирует на зависимости и запускаем его команду сборки, чтобы наш express сервер мог использовать папку сборки, которую он генерирует для stati c assets:

    "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"

при первом запуске этого приложения на heroku все работало, как и ожидалось, так же, как и в разработке.

однако сейчас, когда я захожу на сайт и пытаюсь зарегистрироваться или войти ( таким образом ударяя о бэкэнд с запросами http) я получаю сообщения об ошибках, указывающие, что мой сервер недоступен ...

POST http://localhost:5000/api/auth net::ERR_CONNECTION_REFUSED

, если я запускаю свой локальный Разработка среды, пока я загружаю сайт, размещенный на heroku, тогда вся маршрутизация работает нормально, но если я выключаю сервер на своей локальной машине и захожу на сайт, ничего, что заставляет запрос http к API бэкэнда, работает правильно.

Ищите здесь некоторое понимание. Любая помощь приветствуется. Спасибо.

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