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

时间:2020-06-07 17:22:17

标签: reactjs heroku 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);
    });
};

我认为我正在本地主机上校准api,这就是为什么我没有连接到后端的原因。 我应该在这里做什么?

如果您还有其他需要,可以告诉我。

1 个答案:

答案 0 :(得分:0)

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

使用分配给您的应用程序的域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';