中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

小程序接口請求封裝的示例分析

這篇文章將為大家詳細講解有關小程序接口請求封裝的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

垣曲網站制作公司哪家好,找成都創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站等網站項目制作,到程序開發,運營維護。成都創新互聯從2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯

api.js

這個文件主要api接口,廢話不多說直接上代碼了

const request = require('requtil.js')/*Apis 把全部api都存在這里*/const Apis = { 
   /* 用戶相關 */
  'login': '/devicecenter/auth/weChtLoin',  'bindUser': '/devicecenter/user/userBindinOpenId',  'genQrCode': '/devicecenter/user/getUserRcode',  
   /* 設備相關 */
  'getDeviceList': '/minipro/group/getDl', // 獲取設備列表
  'getDeviceAdd': '/minipro/group/addDl', //  添加設備
  'getDeviceDtl': '/minipro/group/delDl', //  刪除設備}/* 定義請求方法 */const user = {  login: function(data) {
    request.get(Apis.login, data)
  },  getSecret: function(data) {
    request.get(Apis.getSecret, data)
  },
}module.exports = {
  ...user
}復制代碼

requtil.js

把微信的wx.request請求進行分開封裝

const globalsetting = require('globalsetting.js')const baseURL = globalsetting.serverconst util = require('util.js')const ignoreUrls = [  '/auth/weChatLogin',  '/user/userBindingOpenId',  '/user/getSecret',  '/user/getOpenId']var token = ''function post(url, args) {
  args = _prev(url, 'POST', args)
  wx.request(args)
}function get(url, args) {
  args = _prev(url, 'GET', args)
  wx.request(args)
}function put(url, args) {
  args = _prev(url, 'PUT', args)
  wx.request(args)
}function _delete(url, args) {
  args = _prev(url, 'DELETE', args)
  wx.request(args)
}function _prev(url, method, args) {  // console.log('123',args)
  args = args || {}
  args.url = url  if(args.urlparam) 
    args.url += '/' + args.urlparam  var params = parseParams(args)
  params.method = method
  params.success = success(params.success)
  params.fail = fail(params.fail)
  setToken(params)  return params
}// 處理接口是否需要添加header.token方法function setToken(params) {  if (!ignoreUrls.some(url => params.url.match(new RegExp(url)))) {    if (!params.header)
      params.header = { token: getToken() }    else 
      params.header.token = getToken()
  } else {    // console.log('ignore: ', params.url)
  }
}// 處理接口參數方法function parseParams(args) {  var params = Object.assign(args)  if (!(params.url.startsWith('https://') || params.url.startsWith('http://')))
    params.url = baseURL + params.url  if(params.param) {    if (params.url.indexOf('?') > -1 && params.url.indexOf('?') != params.url.length - 1) {
      params.url += '&' 
    } else if(params.url.indexOf('?') == params.url.length -1) {      // 無任何操作
    } else {
      params.url += '?'
    }    var buf = ''
    for(var name in params.param) {      let val = params.param[name];
      buf += name + '=' + encodeURI(typeof val == 'object' ? JSON.stringify(val) : val) + '&'
    }
    params.url += buf
  }  return params
}// 接口返回成功方法function success(callback) {  return function(rs) {    var status = rs.statusCode    if (status == 405) {
      util.errorMsg('請求失敗405:\n服務器返回失敗')
    } else if(status == 404) {
      util.errorMsg('請求失敗404:\n找不到接口')
    }    if(callback) callback(rs.data)
  }
}function fail(callback) {  return function(rs) {    console.log(rs)    if(callback) callback(rs)
  }
}// 獲取接口請求回來的tokenfunction _setToken(tk) {
  token = tk
  wx.setStorageSync('token', token)
}復制代碼

頁面怎么調用

在全局的app.js里面

import api from './utils/apis.js';
App({    api: api,
})復制代碼

index頁面

通過getApp()獲取api接口,自定義一個函數里面用到了promise方法獲取數據,然后在getDevList調用getChatRecord方法,就可以數據賦值

const APP = getApp()
getDevList(e){  this.getChatRecord().then(res => {
    wx.hideLoading({      success: (res) => {},
    });    if(res.id == '-1') {
      utils.errorMsg(res.message);
    }else {      console.log(res)
    }
  })
}// 設備列表請求接口getChatRecord (params = {}) {  return new Promise((resolve, reject) => {
    APP.api.getDeviceList({      success: res => {
        resolve(res)
      }
    })
  })
},復制代碼

后期我會做一個demo出來,放到github上面,這樣你們看起來更直觀一些

關于“小程序接口請求封裝的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

網站欄目:小程序接口請求封裝的示例分析
當前網址:http://m.2m8n56k.cn/article42/jdsjhc.html

成都網站建設公司_創新互聯,為您提供網站營銷網站改版網站導航網站建設移動網站建設網站收錄

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司
主站蜘蛛池模板: 国产成人一区二区三区影院免费 | 草草在线观看视频 | 欧美亚洲国产视频 | 狠狠色狠狠色狠狠五月ady | 91成人午夜在线精品 | 欧美性猛交xxxxbbb | 国产免费人成在线看视频 | a级毛片在线免费看 | 欧美一区二区三区不卡 | 99久久精品国产一区二区 | 在线欧美不卡 | 亚洲欧美综合国产精品一区 | 黄色激情网站 | 99精品欧美一区二区三区 | 韩国美女爽快一毛片免费 | 国产在线欧美日韩一区二区 | 国产精品久久久久久 | 欧美成人免费全部观看天天性色 | 亚洲精品中文字幕久久久久久 | 欧美性色高清生活片 | 在线亚洲精品 | 国产精品三级一区二区 | 日本亚欧乱色视频在线观看 | 激情欧美一区二区三区 | jizjiz日本| 一级美女片 | 欧美一级特黄aa大片 | 日韩在线精品 | 三级黄色片网址 | 国产成人精品高清不卡在线 | 天天澡天天碰天天狠伊人五月 | 久久亚洲一级毛片 | 日日摸日日碰夜夜97 | 日本美女视频韩国视频网站免费 | 欧美日韩在线视频免费完整 | 国产的一级片 | 久草免费看 | 成年人色网站 | 一区二区三区四区视频在线观看 | 超清国产粉嫩456在线免播放 | 另类视频欧美 |