Jsonserver模拟前后端请求(react项目实践)

简介: Jsonserver模拟前后端请求(react项目实践)

前言

大家好 我是歌谣 今天应中间方的要求 写接口之前先用json server模拟数据格式 一开始觉得是比较麻烦的东西 但是用了之后发现是真的好


安装命令

npm install -g Json-server


执行命令加端口

json-server --watch db.json --port 5000


模拟五个json接口

db.json


```


{ "produceText": [ { "po": "1000", "id": 1 }, { "id": 2, "code": "WF230146", "styleId": 2, "styleNumber": "G15661", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 3, "code": "WF230147", "styleId": 3, "styleNumber": "B30131012", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 4, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 5, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 6, "code": "WF230145", "styleId": 1, "styleNumber": "002", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 7, "code": "WF230146", "styleId": 2, "styleNumber": "G15661", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 8, "code": "WF230147", "styleId": 3, "styleNumber": "B30131012", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 9, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 10, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 11, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 12, "code": "WF230148", "styleId": 4, "styleNumber": "6021", "registerDate": "2023-04-24 18:50:10", "po": "2" }, { "id": 13 } ], "produceTextDetail": [ { "165": "1", "170": "2", "175": "1", "180": "1", "materalId": "1", "materalName": "领子", "fileName": "面料-1.44M-175", "fileId": "领子", "time": 2, "status": "是", "width": "2", "mark": "7" }, { "165": "1", "170": "2", "175": "1", "180": "1", "materalId": "1", "materalName": "领子", "fileName": "面料-1.44M-175", "fileId": "领子", "time": 2, "status": "是", "width": "2", "mark": "7" }, { "165": "1", "170": "2", "175": "1", "180": "1", "materalId": "1", "materalName": "领子", "fileName": "面料-1.44M-175", "fileId": "领子", "time": 2, "status": "是", "width": "2", "mark": "7" }, { "165": "1", "170": "2", "175": "1", "180": "1", "materalId": "1", "materalName": "领子", "fileName": "面料-1.44M-175", "fileId": "领子", "time": 2, "status": "是", "width": "2", "mark": "7" } ], "StyleNumberList": [ { "id": 1, "name": "002" }, { "id": 2, "name": "G15661" }, { "id": 3, "name": "B30131012" }, { "id": 4, "name": "6021" } ], "MatuDataList": [ { "id": 1, "name": "WF230145" }, { "id": 2, "name": "WF230146" }, { "id": 3, "name": "WF230147" }, { "id": 4, "name": "WF230148" } ], "MatrialList": [ { "id": 1, "name": "面布",


"children": []
},
{
  "id": 2,
  "name": "面料1",
  "children": []
},
{
  "id": 3,
  "name": "面料2",
  "children": []
},
{
  "id": 4,
  "name": "面料3",
  "children": []
}



], "FileDataList": [ { "id": 1, "name": "5622-1345", "flag": true }, { "id": 2, "name": "5622-1346", "flag": true }, { "id": 3, "name": "5622-1347", "flag": true }, { "id": 4, "name": "5622-1348", "flag": true } ] } ```


运行结果

image.png


质疑

1.跨域问题 (后来验证没有) 2修改问题 (根据id修改)


下一步

直接加入axios


``` import axios from "axios"; // 引入axios const instance = axios.create({ baseURL: "http://localhost:5000", timeout: 60000, }); // 请求拦截器 instance.interceptors.request.use( function (config) { console.log("发请求之前", config); return config; }, function (error) { console.log("请求错误", error); return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( function (response) { console.log("得到的响应数据", response); return response; }, function (error) { console.log("响应错误", error); return Promise.reject(error); } ); // get请求 export function get(url, data = {}) { console.log(data, "datattattata"); return new Promise((resolve, reject) => { instance .get(url, { params: data, }) .then((response) => { resolve(response); }) .catch((err) => { reject(err); }); }); } // post请求 export function post(url, data = {}) { return new Promise((resolve, reject) => { instance.post(url, data).then( (response) => { resolve(response.data); }, (err) => { reject(err); } ); }); }


```


``` import {get,post} from "../request" import {returnMsg } from "../return"


export const UserLogin = data => post('/pda/login', data) //查询任务界面 export const getLayData = async data => await returnMsg(get('/pda/selectPDAAuth', data))


export const ProduceText = async data => await returnMsg(get('/produceText', data))


export const produceTextDetail = async data => await returnMsg(get('/produceTextDetail', data))


export const StyleNumberList = async data => await returnMsg(get('/StyleNumberList', data))


export const MatuDataList = async data => await returnMsg(get('/MatuDataList', data))


export const MatrialList = async data => await returnMsg(get('/MatrialList', data))


export const FileDataList = async data => await returnMsg(get('/FileDataList', data))


```


修改

axios.put(`http://localhost:5000/produceText/${info.id}`, { po: form.getFieldValue("po") }).then(res => { console.log('修改成功') props.onConfirm(); })


模拟查询

image.png


总结

可以快速的增删改查接口 秀啊


相关文章
|
3月前
|
前端开发 JavaScript
深入理解并实践React Hooks —— useEffect与useState
深入理解并实践React Hooks —— useEffect与useState
159 1
|
3月前
|
前端开发 JavaScript
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
本文介绍了在React项目中实现路由懒加载的方法,使用React提供的`lazy`和`Suspense`来优化项目首次加载的速度。通过将路由组件改为懒加载的方式,可以显著减少初始包的大小,从而加快首次加载速度。文章还展示了如何使用`Suspense`组件包裹`Switch`来实现懒加载过程中的fallback效果,并提供了使用前后的加载时间对比,说明了懒加载对性能的提升作用。
237 2
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
221 2
|
3月前
|
前端开发 JavaScript Java
SpringBoot项目部署打包好的React、Vue项目刷新报错404
本文讨论了在SpringBoot项目中部署React或Vue打包好的前端项目时,刷新页面导致404错误的问题,并提供了两种解决方案:一是在SpringBoot启动类中配置错误页面重定向到index.html,二是将前端路由改为hash模式以避免刷新问题。
287 1
|
1月前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
3月前
|
移动开发 前端开发
react项目配合diff实现文件对比差异功能
在React项目中,可以使用`diff`库实现文件内容对比差异功能。首先安装`diff`库,然后在组件中引入并使用`Diff.diffChars`或`Diff.diffLines`方法比较文本差异。通过循环遍历`diff`结果,可以生成不同样式的HTML元素来高亮显示文本差异。
151 1
react项目配合diff实现文件对比差异功能
|
3月前
|
前端开发 算法 JavaScript
React项目input输入框输入自动失去焦点
本文讨论了在React项目中如何处理input输入框自动失去焦点的问题,特别是在移动端开发中。文章提供了一个使用React Native的TouchableWithoutFeedback组件来监听点击事件,并在事件处理函数中通过调用Keyboard.dismiss()方法使输入框失去焦点的示例代码。这种方法可以确保在用户点击页面其他区域时,键盘能够收起,输入框失去焦点。
120 1
React项目input输入框输入自动失去焦点
|
3月前
|
JavaScript 前端开发 应用服务中间件
本地运行打包好的React、Vue项目
本文讨论了如何本地运行打包好的React和Vue项目,并解决了使用React-Router时Tomcat部署刷新页面导致404的问题,提出了将请求转回index.html的解决方案。
38 1
本地运行打包好的React、Vue项目
|
2月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
688 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
3月前
|
资源调度 JavaScript 前端开发
使用vite+react+ts+Ant Design开发后台管理项目(二)
使用vite+react+ts+Ant Design开发后台管理项目(二)