部署成功后,无法通过 Heroku 上的前端连接到后端

ath*_*shi 5 heroku reactjs mern

我已经在heroku 上部署了我的mern stack 应用程序。问题是我无法向我的后端发出任何请求。我像这样将我的前端连接到我的后端......

API=http://localhost:5000/api

 import { API } from "../../backend";
import { signin } from "../../auth/helper";
export const getAllProducts = () => {
  return fetch(`**${API}/allProducts**`, { method: "GET" })
    .then((response) => {
      return response.json();
    })
    .catch((err) => {
      console.log(err);
    });
};
Run Code Online (Sandbox Code Playgroud)

我想我正在本地主机上调用 api,这就是为什么我没有连接到后端。我应该在这里做什么?

如果你还想要什么,可以告诉我。

Max*_*lov 4

在客户端(前端)代码中,本地主机是最终用户的计算机,因为代码在该计算机的浏览器中运行。因此,当它尝试从 localhost:5000/api 获取数据时,它会在最终用户的计算机上查找 Node.js 服务器,而不是 Heroku 上的实际生产服务器。

使用分配给您的应用程序的 Heroku 域而不是 localhost。您可以在测功机的“设置”中找到它,并且应该看起来像这样https://yourapp.herokuapp.com/。此外,您可以使用NODE_ENVenv var 设置 API 字符串,使其适用于开发和生产:

const API = process.env.NODE_ENV === 'production' ? 'https://yourapp.herokuapp.com/api' : 'http://localhost:5000/api';
Run Code Online (Sandbox Code Playgroud)