mockjs配合qs的使用
1、mockjs
mockjs可以模拟得到随机的、较为真实的数据,且可以拦截axios的接口调用,让我们的代码实现了调用接口的逻辑且得到模拟的数据,充分的保存业务完整度,不需要手写数据,以防大改。
2、qs包(query string)
利用其parse方法,解析字符串,方便解析前端传来的url(一长串)参数
3、配合使用:
假设需要前端发送请求传值到后端获取信息
findCollect({ page: 1, pageSize: 4})
mockjs拦截到的请求config
import qs from ‘qs’ const queryString = config.url.split("?")[1]; const queryObject = qs.parse(queryString); console.log(queryObject);
需要拿到里面的参数值,所以需要做解析。可以使用node自带的qs包,内置方法parse解析
注意:解析出来的对象内容都为字符串,有的需要转换一下
接下来就可以通过所解析的参数,对数据进行模拟并返回
Mock.mock(/\/member\/collect/, "get", (config) => { //模拟数据逻辑 const items = []; const queryString = config.url.split("?")[1]; const queryObject = qs.parse(queryString); for (let i = 0; i < queryObject.pageSize; i++) { items.push( Mock.mock({ id: "@id", name: "@ctitle(10,20)", desc: "@ctitle(4,10)", price: "@float(100,200,2,2)", picture: `http://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/clothes_goods_${Mock.mock( "@integer(1,8)" )}.jpg`, }) ); } return { msg: "请求测试接口成功", result: { items, counts: 35, //+号为了转类型 pageSize: +queryObject.pageSize, page: +queryObject.page, }, }; });