欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

全網(wǎng)小程序接口請求封裝實例代碼

 更新時間:2020年11月06日 10:27:48   作者:sosojie  
這篇文章主要給大家介紹了關(guān)于全網(wǎng)小程序接口請求封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

這篇文章主要針對一些初學(xué)者,有寫的不好的地方,還請大家多多諒解!

在utils文件夾里面新建兩個js文件,一個是api.js、一個就是requtil.js

api.js

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

const request = require('requtil.js')
/*Apis 把全部api都存在這里*/
const Apis = { 
 /* 用戶相關(guān) */
 'login': '/devicecenter/auth/weChtLoin',
 'bindUser': '/devicecenter/user/userBindinOpenId',
 'genQrCode': '/devicecenter/user/getUserRcode',
 
 /* 設(shè)備相關(guān) */
 'getDeviceList': '/minipro/group/getDl', // 獲取設(shè)備列表
 'getDeviceAdd': '/minipro/group/addDl', // 添加設(shè)備
 'getDeviceDtl': '/minipro/group/delDl', // 刪除設(shè)備
}
/* 定義請求方法 */
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.server
const 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)
 }
}
// 處理接口參數(shù)方法
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服務(wù)器返回失敗')
 } 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)
 }
}
// 獲取接口請求回來的token
function _setToken(tk) {
 token = tk
 wx.setStorageSync('token', token)
}

頁面怎么調(diào)用

在全局的app.js里面

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

index頁面

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

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)
 }
 })
}
// 設(shè)備列表請求接口
getChatRecord (params = {}) {
 return new Promise((resolve, reject) => {
 APP.api.getDeviceList({
  success: res => {
  resolve(res)
  }
 })
 })
},

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

總結(jié)

到此這篇關(guān)于全網(wǎng)小程序接口請求封裝實例的文章就介紹到這了,更多相關(guān)全網(wǎng)小程序接口請求封裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JS逆向之加密參數(shù)定位

    JS逆向之加密參數(shù)定位

    越來越多的網(wǎng)站進行數(shù)據(jù)傳輸時不使用明文傳輸,本文主要介紹了JS逆向之加密參數(shù)定位,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Google的跟蹤代碼 動態(tài)加載js代碼方法應(yīng)用

    Google的跟蹤代碼 動態(tài)加載js代碼方法應(yīng)用

    Google的跟蹤代碼 動態(tài)加載js代碼,需要的朋友可以參考下
    2012-11-11
  • 關(guān)于layui flow loading占位圖的實現(xiàn)方法

    關(guān)于layui flow loading占位圖的實現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于layui flow loading占位圖的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • Nuxt v-bind綁定img src不顯示的解決

    Nuxt v-bind綁定img src不顯示的解決

    這篇文章主要介紹了Nuxt v-bind綁定img src不顯示的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JavaScript實現(xiàn)url地址自動檢測并添加URL鏈接示例代碼

    JavaScript實現(xiàn)url地址自動檢測并添加URL鏈接示例代碼

    寫一個簡單的聊天系統(tǒng),發(fā)出Htpp的Url實現(xiàn)跳轉(zhuǎn)加上a標簽,下面是具體的實現(xiàn),感興趣的朋友不要錯過
    2013-11-11
  • 比較詳細的關(guān)于javascript中void(0)的具體含義解釋

    比較詳細的關(guān)于javascript中void(0)的具體含義解釋

    比較詳細的關(guān)于javascript中void(0)的具體含義解釋...
    2007-08-08
  • Js 中debug方式

    Js 中debug方式

    以前在VS2005中以為要斷點debug js 要 用 debug模式并且在相應(yīng)的js中設(shè)置斷點 才可以debug,今天學(xué)了一招,可以在要調(diào)試的js前加一句js命令debugger;
    2010-02-02
  • 微信小程序后臺持續(xù)定位功能使用詳解

    微信小程序后臺持續(xù)定位功能使用詳解

    這篇文章主要介紹了微信小程序后臺持續(xù)定位功能使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • JavaScript 封裝Ajax傳遞的數(shù)據(jù)代碼

    JavaScript 封裝Ajax傳遞的數(shù)據(jù)代碼

    在使用Ajax傳輸數(shù)據(jù)時,少不了對傳遞的字符進行轉(zhuǎn)碼,我的實現(xiàn)方式是將需要傳遞的數(shù)據(jù)暫存到一js Bean中,將js Bean放到Array中,生成傳輸參數(shù)時對Array中的jsBean進行分解,得到相應(yīng)屬性信息并編碼..
    2009-06-06
  • 解決js相同的正則多次調(diào)用test()返回的值卻不同的問題

    解決js相同的正則多次調(diào)用test()返回的值卻不同的問題

    今天小編就為大家分享一篇解決js相同的正則多次調(diào)用test()返回的值卻不同的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論