Jestem nowy w węźle i nie mogę przekazać żądania parametry podczas korzystania z HTTP-Proxy-Middleware ..

Rzuca mi błąd 404

To jest ekspresowy słuchacz:

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

To jest żądanie złożonego AXIOS:

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

A to jest Proxymiddlewe:

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

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

Mój klient działa na Localhost: 3000 (reaguj aplikacja), a mój serwer znajduje się na LocalHost: 3050

Po otwarciu karty sieciowej przeglądarki, aby sprawdzić żądania, które widzę, że połączenie

localhost:3000/api/markets/idContent

Nie

localhost:3050/api/markets/idContent

Jak to ma.

Działa, gdy wysyłam go ręcznie

localhost:3050/api/markets/idContent

Jak mogę to naprawić, jakieś pomysły?

Dzięki z góry

0
JozeV 21 luty 2019, 17:40

2 odpowiedzi

Najlepsza odpowiedź

Wydaje się, że problem jest z konfiguracją proxy. Na razie pasuje do adresów URL tylko o jeden poziom głębokości.

Spróbuj /api lub /api/**

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

module.exports = function(app) {
  app.use(proxy("/api", { target: "http://localhost:3050" }));
};
1
Yury Tarabanko 21 luty 2019, 14:58

Nie określasz adresu URL podstawowego. Utwórz instancję AXIOS i określ odpowiedni adres URL podstawy:

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

A następnie wykonaj wszystkie żądania AXIOS za pomocą tej instancji:

instance
  .put("/api/markets/" + idToPass, {..Object..})
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err);
  });
0
Nguyễn Việt Đức 21 luty 2019, 15:05