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

标签 reactjs heroku mern

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

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);
    });
};

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

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

最佳答案

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

使用分配给您的应用程序的域 Heroku,而不是 localhost。你可以在你的 dyno 的设置中找到它,应该看起来像这样 https://yourapp.herokuapp.com/ .此外,您可以使用 NODE_ENV env var 来设置 API 字符串,以便它在开发和生产中都可以使用:

const API = process.env.NODE_ENV === 'production' ? 'https://yourapp.herokuapp.com/api' : 'http://localhost:5000/api';

关于reactjs - 成功部署后无法通过前端连接到 Heroku 上的后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62249040/

相关文章:

node.js - 运行 MERN 测试时出现问题

node.js - Heroku、NodeJs 和 React 问题 : SCRIPT5007: Unable to get property 'apply' of undefined or null reference

javascript - 使用三元表达式渲染组件

javascript - react : How to disabled Next Button

reactjs - React Router - 如何实现离开页面动画?

ruby-on-rails - Heroku:错误-/bin/sh:1:npm:部署到 Heroku 时未找到

heroku - 如何将多个github帐户链接到一个heroku帐户?

javascript - 如何使用静态变量获取更新的 React Context?

python - 部署到 Heroku 时,如何在 Procfile 中使用 Gunicorn 导入自定义模块?

javascript - 如何停止 React 中条件 JSX 的更改,直到再次单击提交?