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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM