Нужно ли выставлять передние и задние части с помощью ngrok для стека MERN для работы CRUD? - PullRequest
1 голос
/ 21 февраля 2020

Я разрабатываю приложение MERN на своем локальном компьютере.

Внешний интерфейс находится на локальном хосте: 3000

Внутренний сервер находится на локальном хосте: 3003

У меня есть в моем коде переднего конца запрос, например, так:

axios.get('localhost:3000/comments', params)

Теперь я использую ngrok для показа приложения, например:

ngrok start front_end back_end

и мой конфигурационный файл .yml выглядит следующим образом:

tunnels:
    front_end:
        proto: http
        addr: 3000
        subdomain: fakedomaintest
    back_end:
        proto: http
        addr: 3003
        subdomain: fakedomaintestback

У меня вопрос был, нужно ли выставлять серверную часть другим способом, или я неправильно делю стек?

Когда я выставляю localhost: 3000 и localhost: 3003, я редактирую строки CRUD в коде переднего конца, чтобы они соответствовали URL-адресу ngrok, например:

axios.get('fakedomaintestback.ngrok.io/comments', params)

и после доступа к fakedomaintest.ngrok.io это работает ....

Но есть ли более простой способ, при котором мне не нужно редактировать строки CRUD в интерфейсе каждый раз, когда я хочу использовать ngrok для удаленного прототипа?

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 21 февраля 2020

Если ваше приложение работает на localhost:3003, тогда ваш вызов ios должен быть axios.get('localhost:3003/comments', params)

. Для решения вопроса переключения URL:

. Вы можете использовать dotenv, чтобы установить Переменные среды для вашего приложения.

https://www.npmjs.com/package/dotenv

Как это будет работать, вы создадите файл .env в папке root вашей реакции приложение, содержащее следующее:

BACKEND_HOST=localhost:3003

Тогда в своем коде вы можете изменить все ваши сетевые вызовы на следующее:

axios.get(`${process.env.BACKEND_HOST}/comments`, params)

Если вы хотите переключиться на использование ngrok, вы можете просто измените значение в файле .env.

Если вы используете Create React App, файлы .env уже будут поддерживаться, но вам придется ставить перед всеми вашими переменными REACT_APP, так что BACKEND_HOST станет REACT_APP_BACKEND_HOST

...