マイクロ信ウィジェットパッケージネットワーク要求およびコールバック関数
8121 ワード
主に微信ウィジェットの関数メソッド形式呼び出しを模倣する.js関数をカプセル化し、パラメータはjsonを使用します.使用するパラメータと関数名を入力します.ローカルtokenパッケージの例:
1、useridを取得する
// ==================
// userid
//back false userid
function getUserId(data) {
wx.getStorage({
key: getUserKey(),//'userInfo',
fail:function(res) {
data.back(false);
// return false;
},
success: function(res) {
var userData = res.data;
console.log(userData);
data.back(userData.usrid);
// return userData.usrid;
}
});
}
使用方法ps:伝達パラメータはjsonオブジェクト
var Data = require('../../utils/data.js');
Data.getUserId({
back:function(data){
console.log(data);
if(!data){return;}
var param = {'userId':data};
Data.postData({
url:'//userapp/user/getInfoByUserId',
param:param,
back:function(data) {
console.log(data);
}
});
}
});
2、要求パッケージ
要求に失敗してfalseに戻ってjsonデータ解析に成功し、内部には共通の論理判断が含まれており、グローバルipの含めてipの修正が容易である.
//post===============
//url== ,param=== ,back===
function postData(data) {
var url = data.url;
var param = data.param;
var back = data.back;
console.log(url+'++++'+param.userId);
wx.request({
url: getUrl()+url,
data: param,
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/x-www-form-urlencoded'
},
complete: function(res) {
wx.hideLoading();
},
fail: function(res) {
wx.showToast({
title: ' ',
icon: 'error',
mask: true,
});
back(false);
},
success: function(res) {
console.log(res);
wx.hideLoading();
if(res.data.status==500){
wx.showToast({
title: ' ',
icon: 'success',
mask: true,
});
back(res.data.data);
return;
}else if(res.data.length>0){
wx.showToast({
title: res.data.data,
icon: 'error',
mask: true,
});
}
back(false);
}
})
}
//get===============
//url== ,param=== ,back===
function getData(data) {
var url = data.url;
var param = data.param;
var back = data.back;
console.log(url+'++++'+param);
wx.request({
url: getUrl()+url,
data: param,
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success: function(res) {
console.log(res);
wx.hideLoading();
if(res.data.status==500){
wx.showToast({
title: ' ',
icon: 'success',
mask: true,
});
back(res.data.data);
}else {
wx.showToast({
title: res.data.data,
icon: 'error',
mask: true,
});
}
// return res.data.data;
back(false);
},
fail: function(res) {
// fail
back(false);
},
complete: function(res) {
// complete
wx.hideLoading();
}
})
}
二、すべてのコードと説明
メソッドコードを使用すると、グローバルjs(var Data=require('...//.../utils/data.js')を導入する必要があることに注意してください.使用するには、方法が外部に露出する必要があります.
var Data = require('../../utils/data.js');
//
initData: function() {
Data.getUserId({
back:function(data){
console.log(data);
if(!data){return;}
var param = {'userId':data};
Data.postData({
url:'//userapp/user/getInfoByUserId',
param:param,
back:function(data) {
console.log(data);
}
});
}
});
},
汎用jsのコードは、内部に共通データ保存key、グローバルip、共通のリクエストメソッドパッケージが含まれています.主なメソッドは外部で呼び出すにはmoduleが必要である.exports = {}.使用時にパラメータ設計したのはjsonが微信ウィジェットのコードスタイルに合うように設計したものです.
//
module.exports = {
getUserKey : getUserKey,//
getOpenPwKey : getOpenPwKey,//
getUrl:getUrl,//host
postData:postData,
getData:getData,
getUserId:getUserId,
getUser:getUser
}
//post===============
//url== ,param=== ,back===
function postData(data) {
var url = data.url;
var param = data.param;
var back = data.back;
console.log(url+'++++'+param.userId);
wx.request({
url: getUrl()+url,
data: param,
method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'content-type': 'application/x-www-form-urlencoded'
},
complete: function(res) {
wx.hideLoading();
},
fail: function(res) {
wx.showToast({
title: ' ',
icon: 'error',
mask: true,
});
back(false);
},
success: function(res) {
console.log(res);
wx.hideLoading();
if(res.data.status==500){
wx.showToast({
title: ' ',
icon: 'success',
mask: true,
});
back(res.data.data);
return;
}else if(res.data.length>0){
wx.showToast({
title: res.data.data,
icon: 'error',
mask: true,
});
}
back(false);
}
})
}
//get===============
//url== ,param=== ,back===
function getData(data) {
var url = data.url;
var param = data.param;
var back = data.back;
console.log(url+'++++'+param);
wx.request({
url: getUrl()+url,
data: param,
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success: function(res) {
console.log(res);
wx.hideLoading();
if(res.data.status==500){
wx.showToast({
title: ' ',
icon: 'success',
mask: true,
});
back(res.data.data);
}else {
wx.showToast({
title: res.data.data,
icon: 'error',
mask: true,
});
}
// return res.data.data;
back(false);
},
fail: function(res) {
// fail
back(false);
},
complete: function(res) {
// complete
wx.hideLoading();
}
})
}
// URL==============
function getUrl(){
return "http://120.55.117.108:8989";
}
// ==================
// userid
function getUserId(data) {
wx.getStorage({
key: getUserKey(),//'userInfo',
fail:function(res) {
data.back(false);
// return false;
},
success: function(res) {
var userData = res.data;
console.log(userData);
data.back(userData.usrid);
// return userData.usrid;
}
});
}
// user
function getUser(data) {
wx.getStorage({
key: getUserKey(),//'userInfo',
fail:function(res) {
data.back(false);
// return false;
},
success: function(res) {
var userData = res.data;
console.log(userData);
data.back(userData);
// return userData;
}
});
}
// key==============
//
function getUserKey(){
return "userInfo";
}
//
function getOpenPwKey() {
return "openpw";
}