Как использовать create-реакции-приложение с бэкэндом, который обслуживает индекс. html? - PullRequest
0 голосов
/ 05 января 2020

У меня есть сервер бэкэнда API, который работает на https://localhost:8080

И интерфейс, который работает на https://localhost:3000

На сервере у меня есть маршрут /, который обслуживает файл index.html.

Что я хочу сделать sh, так это настроить его так, чтобы, пока я кодирую интерфейс с npm start, я получал преимущества приложений create-реагировать-приложения живая перезагрузка.

Проблема заключается в том, что файл index. html выглядит в режиме отладки следующим образом:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <script src='%PUBLIC_URL%/js/axios.min.js'></script>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json">
    <title>My App</title>
  </head>
  <body>
    <div id="root"></div>
  </body>
</html>

Немного лучше, когда я создаю приложение с npm run build с PUBLIC_URL=https://localhost:3000 в файле .env, но даже тогда, когда сервер не работает, на файлы нельзя ссылаться (также мне не нужно вручную запускать эту команду между каждым изменением)

Это выходит за рамки для создания-реакции-приложения? Я не уверен в правильной настройке связывания, чтобы использовать ее так, чтобы я использовал create-реагировать-приложение, но вместо размещения файла index. html из внешнего интерфейса, чтобы вместо этого обслуживать его из внутреннего интерфейса (так я могу сделать на нем).

1 Ответ

0 голосов
/ 06 января 2020

Вы не используете бэкэнд с React таким способом.

React - это структура пользовательского интерфейса для упрощения разработки Front end.

Серверные API используются для взаимодействия с базами данных и получения и хранить данные, а также для размещения маршрутов, используемых для создания POST, GET, PATCH, DELETE и т. д. c. Запросы. Вы можете использовать движки рендеринга шаблонов на серверной стороне для статического рендеринга и обслуживания HTML страниц с некоторым динамически загружаемым контентом через деконструкторы шаблонов, однако, насколько я знаю, это не совместимо с тем, как работает реагирует. Обычно серверная часть, используемая с интерфейсом реагирования, используется для взаимодействия между базой данных и состоянием компонентов реакции.

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

Если вам нужно отправить данные с вашего сервера во внешний интерфейс, вы также должны обновить пакет. json файл, чтобы включить прокси с адресом API

"proxy": "http://localhost:8000/",

...