전체 네트워크 애플릿 인터페이스 요청 봉인 실례 코드
이 글은 주로 일부 초보자를 겨냥하여 쓴 것이 좋지 않은 점이 있으니, 여러분 많은 양해를 바랍니다.
utils 폴더에 js 파일 두 개를 새로 만듭니다. 하나는api입니다.js, 하나는requtil입니다.js
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.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)
}
}
//
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:
')
} else if(status == 404) {
util.errorMsg(' 404:
')
}
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)
}
페이지 호출 방법전역 앱.안에
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)
}
})
})
},
후기에 데모를 만들어서 github 위에 올려놓을게요. 이렇게 하면 더 직관적으로 보일 거예요.총결산
이 글은 인터넷 소프로그램 인터페이스 요청 봉인 실례에 대한 소개입니다. 더 많은 인터넷 소프로그램 인터페이스 요청 봉인 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
위챗 프로그램 개발에서 직면한 몇 가지 사소한 문제를 깊이 있게 분석하다로컬 그림이 표시되지 않으면 개발 도구가 실행되는 것은 문제없지만, 실제 디버깅은 표시되지 않습니다 자세히 관찰한 결과 경로는 문제없다. 문제는 사진 이름이 중국어가 될 수 없다는 것이다. 이를 자모+숫자로 바꾸면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.