マイクロ信ウィジェットパッケージネットワーク要求およびコールバック関数

8121 ワード

  • バックグラウンド:ローカルからログインするtokenからデータにアクセスする必要があり、ドメイン名の書き込みを要求するのは面倒です.パッケージを簡単に使用できます.
  • 一、パッケージの基礎説明
    主に微信ウィジェットの関数メソッド形式呼び出しを模倣する.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";
    }