У меня есть бэкэнд-сервер API, интерфейс обслуживается другим сервером, созданным create-react-app
, и мне нужно проксировать определенный набор запросов от сервера CRA к серверу API.
Я пытаюсь использовать http-proxy-middleware
.Для простого случая использования, когда есть только одно правило, оно работает просто отлично.Но мне не повезло с использованием нескольких правил одновременно.
Я следовал документации и придумал что-то вроде этого (содержание setupProxy.js
).
const proxy = require('http-proxy-middleware');
const proxyTable = {
'/auth/google': 'http://localhost:5000/',
'/api/*': 'http://localhost:5000'
};
const options = {
target: 'http://localhost:3000',
router: proxyTable
};
module.exports = function(app) {
app.use(proxy(options));
};
Прежде всего, я не знаю о свойстве target
в options
, но согласно документации, он устанавливает целевой URL для каждого запроса, который не являетсяуказано в proxyTable
.Что ж, я просто хочу оставить все мои другие запросы без изменений, поэтому я установил значение, совпадающее с адресом, на котором работает CRA (не уверен, что это правильный подход, документация не ясна по этому поводу).
Проблема, с которой я сталкиваюсь, заключается в том, что, если я пытаюсь перенаправить запрос назад, возникает эта ошибка.
Error occurred while trying to proxy request / from localhost:3000 to http://localhost:3000 (EADDRNOTAVAIL)
Я не уверен, что японять эту ошибку.Если я изменю значение target
, появятся некоторые другие сообщения об ошибках, подобные этому, которые будут отображаться, и, кажется, что замечание работает.
Любая помощь будет принята.