React读取properties配置文件转化为json对象并使用在url地址中

简介: 本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。

首先properties配置文件的格式是:

url=http://192.168.0.6
port=8081

我这里命名是strings.properties,因为要做到可配置,就是后期只是改变这个文件的url和port而不用重新打包前端代码,这个文件我放到了public下面
在这里插入图片描述
然后每个接口请求其实都需要拿到这个文件里面的配置包括url和port;
所以选择读取文件,读取文件是异步操作所以在封装请求方法的时候,出现了问题,可以打印出来读取的内容,但是暴露出去的对象是一个undefined;

首先,先读取到文件
在这里插入图片描述
拿到了一个字符串。经过处理变成一个json对象。

let changePROPERTIESTOJSON = async () => {
   
    //存储对象
    let propertiesObj = {
   }
    // 异步请求文件内容  我们可以使用原生或者axios 
    let res = await Promise.resolve(xfetch("GET", "strings.properties")).catch(err => {
   
        console.log(err, '读取文件错误')
    })
    console.log(res,"读取strings.properties文件的结果")
    //分割换行符
    let resArr = res.data.split('\r\n')
    // 拼成json对象
    for (let i = 0; i < resArr.length; i++) {
   
        resArr[i] = resArr[i].split('=')
        propertiesObj[resArr[i][0]] = resArr[i][1]
    }
    // 返回处理好的对象  这是我真实需要的对象
    return {
   
        xxxListAPI: propertiesObj.url + ":" + propertiesObj.port + "/xxx",
        zzzListAPI: propertiesObj.url + ":" + propertiesObj.port + "/zzz",
        yyyListAPI: propertiesObj.url + ":" + propertiesObj.port + "/yyy",
    }
}

这样的话我们拿到了一个permise对象,所以我们还需要一个函数来接收我们的url的拼接地址,

async function xfetchGetConfig(type, url, obj, field) {
   
    // 等文件获取到 之后再 返回一个新的peomise  
    //是一个对象 
    let CUCCListAPI = await changePROPERTIESTOJSON();
    //触发返回真实的请求
    return Promise.resolve(xfetch(type, CUCCListAPI[field] + url, obj));
}
// 解决类似问题可考虑创建一个新的函数 作为桥梁  重新返回一个新的promise 

export default xfetchGetConfig;

当发生一个异步的时候,想要用这个异步结果做其他操作,可以选择再封装一个函数做中间件。

目录
相关文章
|
9月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
286 4
|
1月前
|
JSON IDE Java
鸿蒙开发:json转对象插件回来了
首先,我重新编译了插件,进行了上传,大家可以下载最新的安装包进行体验了,还是和以前一样,提供了在线版和IDE插件版,两个选择,最新的版本,除了升级了版本,兼容了最新的DevEco Studio ,还做了一层优化,就是针对嵌套对象和属性的生成,使用方式呢,一年前的文章中有过详细的概述,这里呢也简单介绍一下。
鸿蒙开发:json转对象插件回来了
|
3月前
|
XML JSON API
如何在 Postman 中上传文件和 JSON 数据
如果你想在 Postman 中同时上传文件和 JSON 数据,本文将带你一步一步地了解整个过程,包括最佳实践和技巧,让你的工作更轻松。
|
9月前
|
JSON 算法 vr&ar
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
本文介绍了如何使用COCO评估器通过Detectron2库对目标检测模型进行性能评估,生成coco_instances_results.json文件,并利用pycocotools解析该文件以计算AP、AR、MR和DR等关键指标。
595 1
目标检测笔记(五):查看通过COCOEvaluator生成的coco_instances_results.json文件的详细检测信息,包含AP、AR、MR和DR等
|
5月前
|
开发工具 git 索引
怎么取消对project.private.config.json这个文件的git记录
通过以上步骤,您可以成功取消对 `project.private.config.json`文件的Git记录。这样,文件将不会被包含在未来的提交中,同时仍保留在您的工作区中。
143 28
|
9月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
161 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
9月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
642 2
|
9月前
|
JSON 前端开发 JavaScript
json字符串如何转为list对象?
json字符串如何转为list对象?
1045 7
|
9月前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
257 3
|
8月前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
456 0