#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-server2. Таким образом, вы можете связаться со своим сервером с
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