微信小程序统一封装request请求,统一拦截校验
生活随笔
收集整理的這篇文章主要介紹了
微信小程序统一封装request请求,统一拦截校验
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
因為用習慣了Vue的axios,將請求統一封裝,這樣可以編寫一處請求,然后讓需要的模塊直接引用調用即可,同時也可以做攔截器,token狀態刷新等等操作,或者響應特定的東西。
因此就試著封裝request,并且使用風格上盡量偏向于跟vue admin template里的request類似,這樣也好讓自己上手。
代碼實現
封裝wx.request,在utils創建文件,request.js:
const app = getApp(); var baseURL = app.getURL();//將url定義在app.js緩存中,直接賦值也是可以的 var user = app.getGlobalUserInfo(); //本地數據從本地緩存中取出/*** 統一封裝的請求* @author smoyu* @param option為參數對象,至少包含url、method*/ const Request = function request(option) {return new Promise(function (resolve, reject) {let header = {'content-type': 'application/json',"Authorization": user.cookieToken //攜帶token在請求頭中};wx.request({url: baseURL + option.url,method: option.method,data: option.data === undefined ? '' : JSON.stringify(option.data), // 如果data沒有傳入,就給空串,不然就序列化header: header,//請求頭timeout:5000,//超時時間 5ssuccess(res) {//請求成功,此處根據你的業務返回的狀態碼進行修改if (res.data.code === 20000) {resolve(res);} else if (res.data.code === 50000) {//登錄狀態失效,需要重新刷新數據reject('登錄狀態失效,需要重新刷新數據');} else {//其他異常reject('運行時錯誤,請稍后再試');}},fail(err) {//請求失敗reject(err)}})}) }//導出 module.exports = Request統一封裝完之后就要寫具體調用api了
在api文件下新建一個文件名稱 comment.js
那么就是使用了:
在具體要調用的js文件中,引入這個comment.js,然后調用findMongoCommentByForumId即可
在風格上已經非常類似了,這樣也達到了我個人需求。
總結
以上是生活随笔為你收集整理的微信小程序统一封装request请求,统一拦截校验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql的运算法
- 下一篇: html:(21):重置按钮和label