Express / React - В процессе производства мои запросы ax ios содержат мой index. html файл в ответ и не достигают моих express маршрутов api сервера - PullRequest
0 голосов
/ 28 мая 2020

Я провел небольшое исследование и нашел похожие сообщения с этой проблемой, но ни одно из решений у меня не помогло.

Я сделал приложение React с приложением create-response-app, а затем создал сервер . js файл, чтобы иметь сервер узла Express. Я следил за некоторыми учебными пособиями, и мне кажется, что я могу разместить свое приложение реакции и свой сервер express в одном приложении / сборке.

Локально все работает, я достигаю своих маршрутов api. Но когда я развертываю сборку своего приложения на сервере, все мои ответы на запросы ax ios являются файлом index. html моего приложения. В чем проблема в моем коде, которая не позволяет моим запросам ax ios достигать моего api?

Вот код:

сервер. js

const connection = require("./conf");
const path = require("path");
const app = express();

app.use(express.json());
app.use(
  express.urlencoded({
    extended: true,
  })
);

app.post("/api/user", (req, res) => {
  const formData = req.body;
  connection.query("INSERT INTO user SET ?", formData, (err, results) => {
    if (err) {
      res.status(500).send("Error");
    } else {
      res.sendStatus(200);
    }
  });
});

app.get("/", (req, res) => {
  res.sendFile(path.join(__dirname, ".build/index.html"));
});

app.listen(8080, () =>
  console.log("Express server is running on localhost:8080")
);

Почта. js с помощью ax ios

axios
  .post(
    "/api/user",
    {
      email: "xxx",
      name: "xxx"
    },
    { withCredentials: true }
  )
  .then((response) => {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

и ответ от ax ios

{data: "<!doctype html><html lang="en"><head><meta charset…s/main.f398f833.chunk.js"></script></body></html>", status: 200, statusText: ""

и в консоли у меня есть хороший URL:

xhr.js:178 XHR finished loading: POST "https://www.mywebsite.com/api/user".

Если я поместил этот URL в свой браузер, у меня будет пустая страница, например когда я помещаю URL-адрес, которого нет в моем маршрутизаторе реакции внешнего интерфейса.

Спасибо за помощь!

1 Ответ

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

Вы поместили прокси в пакет. json или установили baseURL для ax ios

...