Nuxt/Axios: базовый интерфейс с тем же источником, но возможен другой порт?

#express #axios #nuxt.js

Вопрос:

Коротко:
Как я могу установить другой порт для запроса axios nuxt.config , но с тем же исходным доменом?

Долго:
На моей производственной стороне у меня есть экспресс-сервер, который доставляет мой интерфейс и серверную часть через один и тот же порт (например http://192.168.2.22:8800 ). Axios будет делать запросы API на том же источнике с тем же портом. Работает очень хорошо.

На моей стороне разработки у меня есть экспресс-сервер, который предоставляет только мои API, и у меня также есть сервер nuxt, обслуживающий интерфейс. Оба работают на разных портах (например http://192.168.2.22:8800 , для моего бэкенда и http://192.168.2.22:3000 для моего nuxt). Чтобы я также мог выполнять вызовы API в своей среде разработки, я установил baseURL nuxt.config http://localhost:8800 значение в поле «кому».

Моя проблема здесь в том, что я могу протестировать свою среду разработки только в том случае, если я нахожусь на локальном хосте. Если я хочу получить доступ через другой компьютер, вызовы api также запускаются на локальном хосте, который недоступен.

Есть ли способ добавить динамический порт в базу данных?
Мое nuxt.config право сейчас:

 axios: {
  baseURL: isDev ? 'http://localhost:8800/api/v1' : '/api/v1'
},
 

Для лучшего обзора.
Это то, что я хочу на своем производстве (работает только express):

 Frontend: http://192.168.2.22:8800
Backend: http://192.168.2.22:8800
 

Это то, что я хочу на своей стороне разработки (работают два сервера — express и nuxt):

 Frontend: http://192.168.2.22:3000
Backend: http://192.168.2.22:8800
 

Комментарии:

1. Не уверен, что я вполне понял проблему здесь. Если вы хотите получить доступ к своему серверу из любой точки локальной сети, вы можете использовать host: '0.0.0.0' в своем nuxt.config.js файле, как показано здесь: nuxtjs.org/docs/2.x/configuration-glossary/configuration-server

2. Таким образом, вы можете связаться со своим сервером с localhost помощью частного локального IP-адреса (он же 192.168.1.XXX ). В противном случае, ваша конфигурация великолепна ( isDev )!

3. Извините за путаницу. Прямо сейчас я могу связаться со своей средой разработки, работающей на raspberry pi по сети со своего компьютера. Проблема в том, что когда я получаю доступ к своему интерфейсу (например 192.168.1.XXX:3000 ), все запросы axios api по-прежнему отправляются http://localhost:8800/api/v1 . Вместо этого запросы api должны отправляться на http://192.168.1.XXX:8800/api/v1 (другой порт, чем интерфейс).

4. Почему бы не установить переменную среды либо с вашим локальным IP-адресом, либо с IP-адресом RaspberryPi?

5. Хм… Я думаю, что буду придерживаться переменной env. Проще установить переменную в качестве одноразовой настройки на каждом устройстве, которое я хочу разработать, и использовать «локальный хост» в качестве запасного варианта. На производственной стороне все работает динамично. Огромное спасибо. 🙂

Ответ №1:

Переменные среды по-прежнему являются вашим лучшим выбором здесь. Это поможет вам настроить каждую среду по своему вкусу и также позволит избежать множества ошибок.

Вот интересная статья на эту тему: https://nuxtjs.org/blog/moving-from-nuxtjs-dotenv-to-runtime-config