• mock模拟get和post请求


    mock模拟get和post请求

    emmm奇奇怪怪的前后端分离开发就需要用到奇奇怪怪的数据接口,先试试mock给偶们提供的好处,记录一下怕以后忘了咋用,嗯·····装axios和mock应该记得,就把主要文件记一下好了

    文件目录:

    1589725361735

    mock/goods.js

    // 导入数据模块的包and导入随机数模块
    import Mock from 'mockjs'
    
    //创建自定义mock函数,这里大概就是通过函数返回值来实现数据的返回
    Mock.Random.extend({
        //自定义函数名:food
        food: function(){
            const arr = ['大辣鸡犬','小辣鸡犬','不大不小的辣鸡犬','70kg辣鸡犬','万能的辣鸡犬','搞事的辣鸡犬']
            return this.pick(arr)
        }
    })
    
    
    
    // 通过Mock.mock函数模拟get请求
    Mock.mock('/api/goodslist', 'get', {
      status: 200,
      message: '获取商品列表成功',
      'data|5-10': [{ // 5-10随机生成5~10个数据
        'id|+1': 0,
        name: '@cword(2,3)', // 生成中文汉字,word生成英文汉字
        price: 10,
        count: 200,
        img: 'https://raw.githubusercontent.com/moon-ice/Typora-source/master/typora202005/15/163649-643563.png'
      }]
    })
    // 通过Mock.mock函数模拟post请求
    Mock.mock('/api/addgoods', 'post', function (option) {
      // 这里的option是请求的相关参数
      console.log(option)
    
      return Mock.mock({
        status: 200,
        message: '@cword(2)'
      })
    })
    // 通过Mock.mock函数模拟url带参数的请求
    // 方法一:new RegExp('/api/getgoods/.*')作为mock的第一个参
    // 方法二:写url正则的时候不需要括号,//api/getgoods/作为mock的第一个参数
    Mock.mock(//api/getgoods/, 'get', function (option) {
      console.log(option)
    
       const res = //api/getgoods/(d+)/.exec(option.url)
    //res[0]为//api/getgoods/(d+)/,整条url
      return Mock.mock({
        status: 200,
        message: '获取商品列表成功',
        data: {
          id: res[1],
          name: '@food()',
          price: 0.1,
          count: 100,
          img: '@dataImage(78x78)'
        }
      })
    })
    
    

    mock/index.js

    //导入商品模块
    import './goods'
    
    //导入各种模块···
    

    App.vue

    <template>
      <div id="app">
        <h1>
           啊哈~
        </h1>
        <button @click="getGoodsList">获取商品列表</button>
        <button @click="addGoods">添加商品</button>
        <button @click="getGoodsById(3)">根据ID获取商品信息</button>
      </div>
    </template>
    
    <script>
    export default {
      methods: {
        async getGoodsList () {
          const { data: res } = await this.$http.get('/api/goodslist')
          console.log(res)
        },
        async addGoods () {
          const { data: res } = await this.$http.post('/api/addgoods', { name: '菠萝', price: 8, count: 550, img: 123 })
          console.log(res)
        },
        getGoodsById (id) {
          axios.get('/api/getgoods/' + id).then(function (resp) {
            console.log(resp)
          })
          // const { data: res } = await this.$http.get('/api/getgoods/${id}')
        }
    
      }
    }
    </script>
    
    <style>
    
    </style>
    
    
  • 相关阅读:
    proxy
    javascript作用域链
    javascript技巧
    for of
    ES6模块与CommonJS模块有什么区别?
    DOM
    defer和async的区别
    浏览器如何解析css选择器?
    你是如何理解Vue的响应式系统的
    信息安全系统设计基础第十二周学习总结
  • 原文地址:https://www.cnblogs.com/lightice/p/12907381.html
Copyright © 2020-2023  润新知