Reactjs HerokApp无法连接到后端api

Reactjs HerokApp无法连接到后端api,reactjs,express,heroku,Reactjs,Express,Heroku,我现在正在开发一个小的web应用程序,我在Heroku应用程序上遇到了一些问题。我已将其部署到Herokuapp,但每次尝试访问API时,它都会返回错误 Uncaught (in promise) Error: Request failed with status code 504 我对此感到困惑,因为当我在本地运行React应用程序时,一切似乎都正常。我确信我已经正确设置了代理和API端点,并且在部署到Heroku应用程序时执行了必要的步骤,例如在侦听服务器端口时允许process.env.

我现在正在开发一个小的web应用程序,我在Heroku应用程序上遇到了一些问题。我已将其部署到Herokuapp,但每次尝试访问API时,它都会返回错误

Uncaught (in promise) Error: Request failed with status code 504
我对此感到困惑,因为当我在本地运行React应用程序时,一切似乎都正常。我确信我已经正确设置了代理和API端点,并且在部署到Heroku应用程序时执行了必要的步骤,例如在侦听服务器端口时允许
process.env.PORT | 5000

setupProxy.js

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
  app.use(
    "/api",
    createProxyMiddleware({
      target: "http://localhost:5000",
      changeOrigin: true,
    })
  );
};

require("dotenv").config();
const OpenAI = require("openai-api");
const express = require("express");
const app = express();
const port = process.env.PORT || 5000;

app.use(express.json());

app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

const OPENAI_KEY = process.env.OPENAI_API_KEY;

const openai = new OpenAI(OPENAI_KEY);

app.post("/api/request", (req, res) => {
  console.log("accessed request endpoint!");
  const { value } = req.body;

  (async () => {
    try {
      const gptResponse = await openai.answers({
        documents: [],
        question: value,
        search_model: "davinci",
        model: "curie",
        examples_context: "In 2017, U.S. life expectancy was 78.6 years.",
        examples: [
          ["What is human life expectancy in the United States?", "78 years."],
        ],
        max_tokens: 128,
        stop: ["\n", "<|endoftext|>"],
      });

      res.status(200).send({
        status: "Success",
        data: gptResponse.data,
      });
    } catch (error) {
      console.log("ERROR!!!");
      console.log(error);
    }
  })();
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

  const onSubmit = (e) => {
    e.preventDefault();
    axios
      .post("/api/request", {
        value: value,
      })
      .then((res) => {
        const gptResponse = res.data.data.answers[0];
        setReqCount(reqCount + 1);
        const element = reqCount;
        var obj = {};
        obj[element] = gptResponse;
        setResponse((currResponses) => [...currResponses, obj]);
      });
  };

server.js

const { createProxyMiddleware } = require("http-proxy-middleware");

module.exports = function (app) {
  app.use(
    "/api",
    createProxyMiddleware({
      target: "http://localhost:5000",
      changeOrigin: true,
    })
  );
};

require("dotenv").config();
const OpenAI = require("openai-api");
const express = require("express");
const app = express();
const port = process.env.PORT || 5000;

app.use(express.json());

app.use(function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});

const OPENAI_KEY = process.env.OPENAI_API_KEY;

const openai = new OpenAI(OPENAI_KEY);

app.post("/api/request", (req, res) => {
  console.log("accessed request endpoint!");
  const { value } = req.body;

  (async () => {
    try {
      const gptResponse = await openai.answers({
        documents: [],
        question: value,
        search_model: "davinci",
        model: "curie",
        examples_context: "In 2017, U.S. life expectancy was 78.6 years.",
        examples: [
          ["What is human life expectancy in the United States?", "78 years."],
        ],
        max_tokens: 128,
        stop: ["\n", "<|endoftext|>"],
      });

      res.status(200).send({
        status: "Success",
        data: gptResponse.data,
      });
    } catch (error) {
      console.log("ERROR!!!");
      console.log(error);
    }
  })();
});

app.listen(port, () => {
  console.log(`Server listening at http://localhost:${port}`);
});

  const onSubmit = (e) => {
    e.preventDefault();
    axios
      .post("/api/request", {
        value: value,
      })
      .then((res) => {
        const gptResponse = res.data.data.answers[0];
        setReqCount(reqCount + 1);
        const element = reqCount;
        var obj = {};
        obj[element] = gptResponse;
        setResponse((currResponses) => [...currResponses, obj]);
      });
  };

我不完全确定我在这里遗漏了什么。在本地一切正常,但在herokuapp的后端似乎不起作用