微信小プログラムネットワークパッケージ(単純高効率)


ナンセンスな話
プログラムは生まれて久しいですが、プログラム開発にはあまり触れていません。ギターの趣味のクラスの先生は小さいプログラムを作って課程の情報とカードを打つ機能を発表したくて、ITの一員として自らこの小さいプログラムの開発グループに参加しました。アプリはフロントエンドエンジニア向けですが、モバイル端末としてはフレンドリーな感じがします。それに、フロントエンドがあって、ベースがもっと素晴らしいと思います。
WeChatアプレットのネットワーク要求はとても便利です。直接呼んでください。しかし、必要に応じて、いくつかのパラメータのフィードバック情報を処理し、二次パッケージを行い、全体のウィジェットアプリケーションのために直接調整方法インターフェースを提供したほうがいいですか?
ネット上で要求された一貫した思考を利用して、三つの返事をします。ワンストップ:お願いします。ワンストップ:成功の返事をお願いします。ワンファイルド:失敗の返事をお願いします。つまり、字面の意味です。
netUtil.jsネットワーク要求ツールパッケージ
utilsディレクトリでnetUtil.jsファイルを作成します。

/**
 *    post    
 */
function post(url, params, onStart, onSuccess, onFailed) {
 request(url, params, "POST", onStart, onSuccess, onFailed);
}

/**
 *    get    
 */
function get(url, params, onStart, onSuccess, onFailed) {
 request(url, params, "GET", onStart, onSuccess, onFailed);
}

/**
 * function:       
 * @url URL  
 * @params     
 * @method     :GET/POST
 * @onStart     ,    loading   
 * @onSuccess     
 * @onFailed     
 */
function request(url, params, method, onStart, onSuccess, onFailed) {
 onStart(); //request start
 wx.request({
 url: url,
 data: dealParams(params),
 method: method,
 header: { 'content-type': 'application/json' },
 success: function (res) {
  if (res.data) {
  /** start                   */
  if (res.data.error_code == 0) {
   onSuccess(res.data); //request success
  } else {
   onFailed(res.data.msg); //request failed
  }
  /** end     */
  }
 },

 fail: function (error) {
  onFailed(""); //failure for other reasons
 }
 })
}

/**
 * function:           :         
 * @params     
 */
function dealParams(params) {
 return params;
}

module.exports = {
 postRequest: post,
 getRequest: get,
}

小判例使用説明:ジョーク大全インターフェース
簡単な説明:ユーザー登録インターフェース
要求URL:http://v.juhe.cn/joke/content/list.php
要求方式:GET
パラメータ:
パラメータ名
必ず選ぶ
タイプ
説明
ソフト
いいえ、
ストリングス
降順「des」、昇順「asc」
page
いいえ、
要点
ページ数、デフォルト1
PageSize
いいえ、
ストリングス
デフォルトでは、各ページに20つのデータをロードします。
時間
はい、
ストリングス
タイムスタンプ10桁
key
はい、
ストリングス
アプリキー
例を返します

{
 "error_code": 0,
 "reason": "Success",
 "result": {
  "data": [
   {
    "content": "          。  ,                ,         : ,  ,               ?   !   ,        。     ?  、    ?  ? !",
    "hashId": "90B182FC7F74865B40B1E5807CFEBF41",
    "unixtime": 1418745227,
    "updatetime": "2014-12-16 23:53:47"
   },
   {
    "content": "        ,                  ,        :      ‘  '。       ,       。",
    "hashId": "206F5C52FD2ED94772CBC66C8AC61F2A",
    "unixtime": 1418745227,
    "updatetime": "2014-12-16 23:53:47"
   }
  ]
 }
}
ウィジェットページjsファイルにnetUtilを導入します。

var netUtil = require("../../utils/network.js"); //require  
Page({
 data: {
 jokeList: {}
 },

 onLoad: function (options) {
 var url = "http://v.juhe.cn/joke/content/list.php";
 var params = {
  sort: "",
  page: 1,
  pagesize: 5,
  time: "1418816972",
  key: "746dfdb4cd8445d30a8f915fd2b5f76b",
 }

 netUtil.getRequest(url, params, this.onStart, this.onSuccess, this.onFailed); //  get       
 },

 onStart: function () { //onStart  
 wx.showLoading({
  title: '    ',
 })
 },
 onSuccess: function (res) { //onSuccess  
 wx.hideLoading();
 this.setData({
  jokeList: res.result.data //      
 })
 },
 onFailed: function (msg) { //onFailed  
 wx.hideLoading();
 if (msg) {
  wx.showToast({
  title: msg,
  })
 }
 },
})

wxmlファイルにバインディング要求の笑い話大全リスト:jokList

<view>
 <block wx:for="{{jokeList}}" wx:for-item="item" wx:key="idx">
 <view class='joke_container'>
  <text>{{item.content}}</text>
 </view>
 </block>
</view>
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。