Не удается передать req.params при использовании http-proxy-middleware ... NodeJS / Express - PullRequest
0 голосов
/ 21 февраля 2019

Я новичок в Node и не могу передать параметры запроса при использовании http-proxy-middleware ..

Это выдает ошибку 404

Это экспресс-слушатель:

  app.put("/api/markets/:id",()=>{..code..});

Это PUT-запрос axios:

axios
  .put("/api/markets/" + idToPass, {..Object..})
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });

И это proxyMiddleware:

const proxy = require("http-proxy-middleware");

module.exports = function(app) {
  app.use(proxy("/api/*", { target: "http://localhost:3050" }));
};

Мой клиент работает на localhost: 3000 (реагирует на приложение)И мой сервер находится на локальном хосте: 3050

Когда я открываю вкладку сети своего браузера для проверки запросов, я вижу, что осуществляется вызов

localhost:3000/api/markets/idContent

, а не

localhost:3050/api/markets/idContent

как положено.

Это работает, когда я отправляю его вручную на

localhost:3050/api/markets/idContent

Как это можно исправить, какие-нибудь идеи?

Спасибо заранее

Ответы [ 2 ]

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

Вы не указываете базовый URL.Создайте экземпляр axios и укажите правильный базовый URL-адрес:

const instance = axios.create({
  baseURL: 'http://localhost:3050'
});

. Затем выполните все запросы axios, используя этот экземпляр:

instance
  .put("/api/markets/" + idToPass, {..Object..})
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
0 голосов
/ 21 февраля 2019

Кажется, проблема в конфигурации прокси.На данный момент он соответствует URL только на один уровень глубины.

Попробуйте /api или /api/** вместо

const proxy = require("http-proxy-middleware");

module.exports = function(app) {
  app.use(proxy("/api", { target: "http://localhost:3050" }));
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...