Прокси-сервер всех запросов к серверу в React с помощью createProxyMiddleware - PullRequest
0 голосов
/ 27 мая 2020

Итак, на моем dev env у меня есть сервер React на localhost:3000 и сервер NodeJs на localhost:5000.

Я использовал createProxyMiddleware в React для настройки запросов. Вот мой конфиг:

const {createProxyMiddleware} = require('http-proxy-middleware');
    module.exports = function (app) {
      app.use(createProxyMiddleware('/auth/google', {target: 'http://localhost:5000'}));
      app.use(createProxyMiddleware('/auth/currentUser', {target: 'http://localhost:5000'}));
      app.use(createProxyMiddleware('/api/*', {target: 'http://localhost:5000'}));
}

Все эти маршруты работают без проблем. Например, у меня есть маршрут типа localhost:3000/api/list, который направляется в localhost:5000/api/list.

Но теперь у меня есть маршрут типа localhost:3000/api/list/3132133ffdvf. Случайная строка - это какой-то идентификатор. Этот маршрут не проксируется. Это дает мне 404.

Почему это происходит? Этого не должно происходить, поскольку я создал прокси для /api/*. Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 27 мая 2020

Подстановочный знак (*) соответствует только одному уровню каталога. Это означает, что он соответствует /api/list, но не /api/list/id, поскольку последний имеет два уровня.

Удалите подстановочный знак или используйте globstar (**):

app.use(createProxyMiddleware('/api', {target: 'http://localhost:5000'}));

или

app.use(createProxyMiddleware('/api/**', {target: 'http://localhost:5000'}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...