上一篇文章中寫到用promise時應註意的問題,這一篇文章繼續介紹一個可以和axios庫配合的好工具: axios-mock-adapter。axios-mock-adapter可以用來攔截http請求,並模擬響應,使用起來也很簡單,比如你想模擬下伺服器返回個500錯誤,你可以這麼寫: 然後,在業務 ...
上一篇文章中寫到用promise時應註意的問題,這一篇文章繼續介紹一個可以和axios庫配合的好工具: axios-mock-adapter。
axios-mock-adapter可以用來攔截http請求,並模擬響應,使用起來也很簡單,比如你想模擬下伺服器返回個500錯誤,你可以這麼寫:
1 import axios from 'axios' 2 import MockAdapter from 'axios-mock-adapter' 3 4 const mock = new MockAdapter(request) 5 6 mock.onPost('/url').reply(500, { 7 users: [ 8 { id: 1, name: 'John Smith' } 9 ] 10 })
然後,在業務代碼中你就可以捕獲這個500錯誤
1 // 業務代碼調用 2 axios({ 3 url: url, 4 method: 'post', 5 data: data 6 }).then(res => { 7 // 提示用戶數據更新成功 8 }).catch(err => { 9 // 捕獲500等http錯誤,提示用戶更新失敗 10 })
什麼404找不到、403禁止訪問、500伺服器錯誤、503服務不可用、504網關超時等等,你都能模擬出來,然後寫相應的業務代碼,這樣以往只能依靠後端調試介面的苦日子就快到頭了(只是開個玩笑,後端還是不可缺少的)。
有人寫了篇更詳細的文章 axios請求模擬調試器 來介紹它,感興趣的可以去看看。
這篇文章最初發表在我自己折騰的博客站點上:介紹一個axios調試好用的工具axios-mock-adapter,該博客用了一位前輩開源的源碼,基於thinkjs和vuejs開發,歡迎大家來逛逛。