Vue中使用mockjs ,自动注册mock服务,代理请求

1。创建index.js文件 , 目录位置如下图
在这里插入图片描述
index.js代码如下

const Mock = require('mockjs')

// 设置拦截ajax请求的相应时间
// Mock.setup({
//   timeout: '200-600'
// });

const configArray = []
const files = require.context('.', true, /\.js$/);

// 遍历目录下的文件,去掉index文件
files.keys().forEach((key) => {
  if (key === './index.js') return;

  // 获取导出对象并合并
  console.log('files(key).default',files(key).default);
  configArray.push(files(key).default);
});


// 注册所有的mock服务
configArray.forEach((item) => {
  for (let [path, target] of Object.entries(item)) {
    // 根据规则去获取 请求的方式和地址
    let protocol = path.split('|');
    Mock.mock(new RegExp('^' + protocol[1]), protocol[0], target);
  }
});
console.log(22);

把这个文件导入到main.js注册下

这样以后所有的mock服务都写在这个mock目录下,一个拦截是一个文件
比如上面的job.js中的代码如下

import Mock from 'mockjs'
// const jobList = [{
//   id: 1,
//   professionId: '230000',
//   job: '教师'
// }, {
//   id: 2,
//   professionId: '240000',
//   job: '医生'
// }, {
//   id: 3,
//   professionId: '250000',
//   job: '公务员'
// }]

const jobList = Mock.mock({
	id: "@id()", //得到随机的id
	username: "@cname()", //随机生成中文名字
	date: "@date()", //随机生成日期
	avator: "@image('200x200','#50B347','#fff','avatar')", //生成图片,参数:size,background,foreground,text
	description: "@paragraph()", //描述
	ip: "@ip()", //IP地址
	email: "@email()" //email
})



export default {
  // /api/joblist 就是地址
  'get|/api/joblist': option => {
    return {
      status: 200,
      message: 'success',
      data: jobList
    };
  },
}

axios如下
在这里插入图片描述

请求发出
在这里插入图片描述

下图就是拦截的数据,具体的格式可以自定义
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值