React配置代理服务器的5种方法

五种方法的介绍

以下是五种在React项目中配置代理服务器的方法的使用场景和优缺点:

1. 使用 http-proxy-middleware 中间件:

  • 使用场景:适用于大多数React项目,简单易用。
  • 优点:配置简单,易于理解和维护。
  • 缺点:需要手动创建 setupProxy.js 文件,并且需要安装额外的中间件。

2. 使用 http-proxy-middlewaresetupProxy.js 文件:

  • 使用场景:适用于大多数React项目,简单易用。
  • 优点:配置简单,易于理解和维护。
  • 缺点:需要手动创建 setupProxy.js 文件,并且需要安装额外的中间件。

3. 使用 http-proxy-middleware 的配置文件:

  • 使用场景:适用于较旧的React项目,或者对中间件的旧版语法有要求的项目。
  • 优点:配置简单,易于理解和维护。
  • 缺点:需要手动创建配置文件,并且需要安装额外的中间件。

4. 使用 http-proxy-middlewarepackage.json 配置:

  • 使用场景:适用于简单的代理需求,不需要自定义配置的项目。
  • 优点:配置简单,不需要额外的文件和中间件。
  • 缺点:功能有限,不适用于复杂的代理配置。

5. 使用 setupProxy.js 文件和自定义配置:

  • 使用场景:适用于需要更复杂代理配置的项目,例如修改请求头、添加认证信息等。
  • 优点:配置灵活,可以根据需求进行自定义配置。
  • 缺点:需要手动创建 setupProxy.js 文件,并且需要安装额外的中间件。

综上所述,选择合适的方法取决于项目的需求和个人偏好。对于大多数React项目,使用 http-proxy-middleware 中间件或者 setupProxy.js 文件都是简单且常用的方法。如果需要更复杂的代理配置,可以选择使用 setupProxy.js 文件和自定义配置。而 package.json 配置适用于简单的代理需求,不需要自定义配置的项目。

代码实例

在React项目中配置代理服务器有多种方法,以下是其中几种常用的方法:

1. 使用 http-proxy-middleware 中间件:

http-proxy-middleware 是一个常用的代理中间件,可以在React项目中使用。首先,安装 http-proxy-middleware

npm install http-proxy-middleware --save

然后,在项目的 src 目录下创建一个 setupProxy.js 文件,并在其中配置代理服务器:

const { createProxyMiddleware } = require('http-proxy-middleware');module.exports = function(app) {app.use('/api',createProxyMiddleware({target: 'http://localhost:5000', // 代理服务器的地址changeOrigin: true,}));
};

这样,所有以 /api 开头的请求都会被代理到 http://localhost:5000

2. 使用 http-proxy-middlewaresetupProxy.js 文件:

在React项目的根目录下创建一个 src/setupProxy.js 文件,并在其中配置代理服务器:

const { createProxyMiddleware } = require('http-proxy-middleware');module.exports = function(app) {app.use('/api',createProxyMiddleware({target: 'http://localhost:5000', // 代理服务器的地址changeOrigin: true,}));
};

这种方法与第一种方法类似,不同之处在于 setupProxy.js 文件的位置和命名。

3. 使用 http-proxy-middleware 的配置文件:

在React项目的根目录下创建一个 src/setupProxy.js 文件,并在其中配置代理服务器:

const proxy = require('http-proxy-middleware');module.exports = function(app) {app.use('/api',proxy({target: 'http://localhost:5000', // 代理服务器的地址changeOrigin: true,}));
};

这种方法与前两种方法类似,不同之处在于使用了 http-proxy-middleware 的旧版语法。

这种方法可以根据需要进行更灵活的配置,例如修改请求头、重写请求路径等。

这里再介绍另外两种在React项目中配置代理服务器的方法:

4. 使用 http-proxy-middlewarepackage.json 配置:

在React项目的根目录下的 package.json 文件中,可以添加一个 "proxy" 字段来配置代理服务器。例如:

{"name": "my-react-app","version": "1.0.0","proxy": "http://localhost:5000"
}

这样,所有发往 /api 的请求都会被代理到 http://localhost:5000

5. 使用 setupProxy.js 文件和自定义配置:

有时候,我们可能需要更复杂的代理配置,例如需要修改请求头、添加认证信息等。这时,可以在 setupProxy.js 文件中进行自定义配置。例如:

const { createProxyMiddleware } = require('http-proxy-middleware');module.exports = function(app) {app.use('/api',createProxyMiddleware({target: 'http://localhost:5000', // 代理服务器的地址changeOrigin: true,headers: {Authorization: 'Bearer token123', // 添加认证信息},pathRewrite: {'^/api': '', // 重写请求路径,去掉 '/api' 前缀},}));
};

以上是在React项目中配置代理服务器的几种常用方法,你可以根据自己的项目需求选择适合的方法进行配置。无论使用哪种方法,都需要确保代理服务器的地址和端口正确,并且在配置完成后重新启动React开发服务器,使配置生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++学习】STL容器——list

目录 一、list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 1.2.6 list 迭代器失效 二、list的模拟实现 2.1 模拟实现list 三、list和vector的对比…

HTTPS、TLS加密传输

HTTPS、TLS加密传输 HTTPS、TLS加密传输1、HTTPS(HyperText Transfer Protocol Secure)2、TLS HTTPS、TLS加密传输 1、HTTPS(HyperText Transfer Protocol Secure) HTTPS(HyperText Transfer Protocol Secure&#x…

Ozone命令行接口详解

命令行接口简介 Ozone Shell是命令行与Ozone交互的主要界面,底层用的是Java。 有些功能只能通过Ozone Shell进行操作: 创建带有限额限制的Volume管理内部ACLs(访问控制列表)创建带有加密密钥的存储桶 大部分操作除了Shell操作…

【算法挨揍日记】day01——双指针算法_移动零、 复写零

283.移动零 283. 移动零https://leetcode.cn/problems/move-zeroes/ 题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 …

【BASH】回顾与知识点梳理(十二)

【BASH】回顾与知识点梳理 十二 十二. Linux 文件与目录管理12.1 目录与路径相对路径与绝对路径相对路径的用途绝对路径的用途 12.2 目录的相关操作cd (change directory, 变换目录)pwd (Print Working Directory, 显示目前所在的目录)mkdir (make directory, 建立新目录)rmdir…

生信豆芽菜-火山图绘制使用说明

网站:http://www.sxdyc.com/visualsVolcano 一、火山图简介 火山图是散点图的一种,它将统计测试中的统计显著性量度(如p value)和变化幅度(logFC)相结合,能够快速直观地识别那些变化幅度较大且具…

13个Python最佳编程技巧,越早知道越好

每天我们都会面临许多需要高级编码的编程挑战。你不能用简单的 Python 基本语法来解决这些问题。在本文中,我将分享 13 个高级 Python 脚本,它们可以成为你项目中的便捷工具。如果你目前还用不到这些脚本,你可以先添加收藏,以备留…

24大连交通大学813软件工程考研习题

1.等价分类法相关概念。 (1)等价分类法的基本思想是什么? 根据程序的输入特性,将程序的定义域划分为有限个等价区段 —“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价…

springMVC 程序开发

目录 一. 认识 springMVC spring,springBoot,springMVC的关系 二. springMVC 的连接和获取参数 1. 注解分析(不带参数) 2. 获取参数 3. 获取对象参数 4. 重命名功能 5. 获取 JSON 对象 6. 通过 path 文件路径来传递参数…

新版Android Studio模拟器浮动

(水一篇,但其实很多入门同学不知道) 安装新版Andorid Studio后会发现模拟器是内嵌在AS中的,如何让她浮动

[C++项目] Boost文档 站内搜索引擎(4): 搜索的相关接口的实现、线程安全的单例index接口、cppjieba分词库的使用、综合调试...

有关Boost文档搜索引擎的项目的前三篇文章, 已经分别介绍分析了: 项目背景: 🫦[C项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍…文档解析、处理模块parser的实现: 🫦[C项目] Boost文档 站内搜索引擎(2): 文档文本解析模块…

C++学习| MFC简单入门

前言:因为接手了CMFC的程序,所以需要对MFC编程方面有所了解。 C之MFC简单入门 MFC相关的概念MFCWIN32QT MFC项目基本操作MFC项目创建MFC项目文件解读界面和代码数据交互——加法器 MFC相关的概念 MFC MFC(Microsoft Foundation Classes微软…

MySQL中基础查询语句

用户表user数据如下: iddevice_idgenderageuniversityprovince12138male21北京大学Beijing23214male复旦大学Shanghai36543famale20北京大学Deijing42315female 23 浙江大学ZheJiang55432male25山东大学Shandong 1,写出ddl语句创建如上表,…

CEC2013(MATLAB):淘金优化算法GRO求解CEC2013的28个函数

一、淘金优化算法GRO 淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。淘金优化算法(Gold rush optimizer,GRO)提…

centos7实现负载均衡

目录 一、基于 CentOS 7 构建 LVS-DR 集群。 1.1 配置lvs负载均衡服务 1.1.1 下载ipvsadm 1.1.2 增加vip 1.1.3 配置ipvsadm 1.2 配置rs1 1.2.1 编写测试页面 1.2.2 手工在RS端绑定VIP、添加路由 1.2.3 抑制arp响应 1.3 配置rs2 1.4 测试 二、配置nginx负载…

chatGPT小白快速入门课程大纲

以下是关于ChatGPT的培训课程大纲,分为7部分,我们会在后续写一个系列的相关文章: 1. 介绍 ChatGPT是什么?ChatGPT是由谁开发的?ChatGPT是一个什么样的语言模型? 2. 功能与特点 ChatGPT可以做什么?ChatGPT有哪些特点?ChatGPT与传统语言模型的区别? 3. 使用方法 如何…

AMEYA360:尼得科科宝旋转型DIP开关系列汇总

旋转型DIP开关 S-4000 电路:BCD(十进制) 代码格式:实码 安装类型:表面贴装 调整位置:顶部 可水洗:无 端子类型:J 引线, 鸥翼型 旋转型DIP开关 SA-7000 电路:BCD(十进制), BCH(十六进制) 代码格式…

转圈打印矩阵

转圈打印矩阵 【题目】 给定一个整型矩阵 matrix,请按照转圈的方式打印它。 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 打印结果为:1,2,3,4,8,12,16,1…

Java线程池

线程池 1. 概念2. 工作流程3. ThreadPoolExecutor参数 1. 概念 线程池是一种利用池化技术思想来实现的线程管理技术,主要是为了复用线程、便利地管理线程和任务、并将线程的创建和任务的执行解耦开来。我们可以创建线程池来复用已经创建的线程来降低频繁创建和销毁…

前端导出excel,前端纯数据导出excel

非常符合前端直接的使用 使用 先看看使用 表格数据 const tableData [{"id": 1,"firstName": "John","lastName": "Doe","email": "john.doeexample.com","age": 28,"address":…