当前位置: 首页 > 知识库问答 >
问题:

在生产中代理React/Express应用程序的api请求

史俊德
2023-03-14

我正在使用分离的存储库(后端)进行MERN堆栈项目

//package.json in react
{
...
"proxy": "http://localhost:8000/",
...
}

但是,当我切换到生产环境并将代理值替换为部署的链接时,“代理”不再受支持。我做了一个关于它的搜索,我发现它只是为了开发环境,我尝试了在互联网上找到的几个解决方案,但没有运气!

顺便说一下,我用Heroku部署后端,用Netlify部署前端。现在,它们都部署好了,没有任何错误,但是后端和前端之间没有连接。

共有1个答案

斜烈
2023-03-14

在生产中我们不能使用(代理)..相反,我们可以在前端为后端URL设置一个变量,反之亦然。

让我们从后端配置开始:

app.use(cors({ 
   origin: "frontend_URL", 
   credentials: true 
  }));

现在,让我们看看前端配置:

在您喜欢的任何位置设置变量:

export const API_URL = "URL";

在调用API的文件中:

import axios from "axios";
import { API_URL } from "./your/path";
axios.defaults.withCredentials = true;

axios.get(`${API_URL}/your/route`);

现在您可以开始部署了...

 类似资料:
  • 我有一个React应用程序使用了两个第三方服务。应用程序是使用启动的。 这两个服务都需要API密钥。 一个键是通过脚本标记提供的,如下所示: 这就引出了我的第一个问题: 1.如何使用中的变量? 在我的文件中,我有两个如下所示的标记: 与此问题相关的是,将API密钥存储在常量中是否安全,就像我对所做的那样? 谷歌还表示: 不要将API键存储在应用程序源树中的文件中 说我照谷歌说的做 ...将它们存储

  • 通过应用生成器工具 express-generator 可以快速创建一个应用的骨架。 你可以通过 npx (包含在 Node.js 8.2.0 及更高版本中)命令来运行 Express 应用程序生成器。 $ npx express-generator 对于较老的 Node 版本,请通过 npm 将 Express 应用程序生成器安装到全局环境中并执行即可。 $ npm install -g ex

  • 我正在使用一个快速后端创建反应应用程序。我在端口3001上运行后端,在开发模式下,前端通过端口3000运行。我的package.json中有< code > " proxy ":" http://localhost:3001 " ,api工作得很好。 然而,当我使用yarn build,然后运行< code>serve -s build时,根本就没有进行api调用。我不知道为什么它在生产中不工作,

  • 我有一些下面这样的代理代码。问题是,每当目标服务器停机时,此代码都无法捕获错误,导致整个应用程序崩溃,出现。 对于代理服务器来说,这很糟糕,它只需要向调用者返回一个错误,而不是在第一次无法访问目标服务器时完全崩溃。 现在什么是正确的方法? 节点版本6。 谢谢!

  • 当配置为事务生产者时,在面向请求(例如http或RPC服务器)的应用程序中管理Kafka生产者对象的最佳实践是什么?具体来说,如何在服务线程之间共享生产者对象,以及如何定义事务。这些对象的id配置值? 在非事务性使用中,生产者对象是线程安全的,并且在所有请求服务线程之间共享一个对象是很常见的。设置kafka消费者线程使用的事务性生产者对象也很简单,只需为每个消费者线程实例化一个对象即可工作得很好。

  • 在开发中,当我在localhost:3000上运行react服务器时。我使用Package.json中的proxy为后端服务器设置了baseurl,后端服务器运行在loacalhost:5000上。所以我只是将package.json中的proxy编辑为“localhost:5000”。因此从axios发送的所有api请求都将被定向到该URL。 与上述相同的请求将重定向到: 在生产过程中,当我在h