Mock

公司内网也用不了easyMock,加上easyMock有时候又不稳定,所以记录一下mock的使用

  • 首先设置请求的拦截
import Mock from 'mockjs'
import { getTableData} from './response/data'

/**
 * 1.要拦截的URL,字符串或正则表达式
 * 2.要拦截的请求类型,get/post/put/delete/options...,
 * 3.响应的数据,可以是一个数据模板,也可以是返回数据模板的函数
 * 
 */
Mock.mock(/\/getTableData/, 'get', getTableData)

Mock.setup({
  // 请求500毫秒后返回
  timeout: 500
  // timeout: '100-600':可以是一个字符串,100到600毫秒返回
})


export default Mock
  • 分模块编写返回数据模板的方法
import Mock from 'mockjs'
const Random = Mock.Random

function addTemplate = (times, callback) => {
  let i = -1
  while (++i < times) {
    callback(i)
  }
}
export const getTableData = () => {
  const template = {
    name: '@name',
    'age|18-25': 0,
    email: '@email'
  }
  let arr = []
  addTemplate(5, () => {
    arr.push(Mock.mock(template))
  })
  return arr
}
  • 在main.js中引入mock.js
if (process.env.NODE_ENV !== 'production') require('./mock')

在脚手架里也可以起devServer的服务来拦截请求

module.exports = {
  configureWebpack: {
    // 扩展webpack
    devServer: {
      before (app) {
        app.get('/api/goods', function (req, res) {
          res.json({
            list: [
              { text: 'aaa', price: 100 },
              { text: 'bbb', price: 80 },
              { text: 'ccc', price: 60 }
            ]
          })
        })
      },
      proxy: {
        // easymock开头的请求,webpack帮你转发到target之上
        '/easymock': {
          target: ' https://www.easy-mock.com/mock/...',
          changeOrigin: true,
          ws: true,
          pathRewrite: {
            '^/easymock': ''
          }
        }
      }
    }

  }
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值