封裝微信小程序api - wx.request

  • fetch.js 最底層封裝
  // https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html
module.exports = function (url, method, data, params) {
  let user
  try {
    user = wx.getStorageSync('user')
  } catch (e) {
    wx.showModal({
      content: `用戶信息讀取失敗`,
      showCancel: false
    })
  }
  let headers = {'content-type': 'application/json'}
  return new Promise((resolve, reject) => {
    wx.showLoading({
      title: '加載中'
    })
    wx.showNavigationBarLoading()

    const URL = url + urlEncode(params)
    console.log('[HTTP]', method, URL)
    wx.request({
      url: URL,
      method: method,
      data: Object.assign({}, data),
      header: headers,
      success: res => {
        wx.hideLoading()
        wx.hideNavigationBarLoading()
        if (res.statusCode >= 400 && res.statusCode < 600) {
          if (res.statusCode === 401) {
            wx.clearStorage()
            wx.reLaunch({
              url: '/pages/login/login'
            })
            wx.showToast({
              icon: 'loading',
              title: '請重新登錄'
            })
          } else {
            console.log('fetch error', res)
            reject(res)
          }
        } else {
          resolve(res)
        }
      },
      fail: error => {
        wx.hideLoading()
        console.log('fetch error', error)
      }
    })
  })
}

function urlEncode (params) {
  if (params) {
    var result = '?'
    for (let key in params) {
      result += `${key}=${params[key]}&`
    }
    return result
  }
  return ''
}
  • http.js 封裝GET,POST,PUT,DELETE四種方法
// 填寫自己的host,注意相對路徑
const {host} = require('../config')
const fetch = require('./fetch')

const http = {
  get (url, params) {
    return fetch(host + url, 'GET', null, params)
  },
  post (url, body, params) {
    return fetch(host + url, 'POST', body, params)
  },
  put (url, body, params) {
    return fetch(host + url, 'PUT', body, params)
  },
  delete (url, params) {
    return fetch(host + url, 'DELETE', null, params)
  }
}
module.exports = http
  • 業(yè)務(wù)api - answer.js
const http = require('./http')
const res = {
  /**
   * 查詢所有的問題列表
   */
  queryAllQuestions (range, page, size) {
    return http.get(`/v1/questions`, {range: range, page: page, size: size, action: 'all'})
  },
  // 其他方法
  xxxx(){
  }
}
module.exports = res
  • page里的調(diào)用方 question-answer.js
// 獲取全局應(yīng)用程序?qū)嵗龑ο?// const app = getApp()
// 引入業(yè)務(wù)js
const answerRes = require('../../api/answer')

// 創(chuàng)建頁面實(shí)例對象
Page(Object.assign({}, {
  data:{
    page:1,
    size:10
  },
  queryAllQuestions () {
    answerRes.queryAllQuestions(this.data.page,this.data.size)
      .then(res => {
       // 成功回調(diào) 
       console.log(res)
     }).catch(res => {
      // 失敗回調(diào)
       console.log(res)
    })
  }
}))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胜臊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阔籽,更是在濱河造成了極大的恐慌胧华,老刑警劉巖待秃,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡棍厂,警方通過查閱死者的電腦和手機(jī)末誓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進(jìn)店門扯俱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人喇澡,你說我怎么就攤上這事迅栅。” “怎么了晴玖?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵读存,是天一觀的道長为流。 經(jīng)常有香客問我,道長让簿,這世上最難降的妖魔是什么敬察? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮尔当,結(jié)果婚禮上莲祸,老公的妹妹穿的比我還像新娘。我一直安慰自己椭迎,他們只是感情好锐帜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畜号,像睡著了一般缴阎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上简软,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天药蜻,我揣著相機(jī)與錄音,去河邊找鬼替饿。 笑死语泽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的视卢。 我是一名探鬼主播踱卵,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼据过!你這毒婦竟也來了惋砂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤绳锅,失蹤者是張志新(化名)和其女友劉穎西饵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳞芙,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡眷柔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了原朝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驯嘱。...
    茶點(diǎn)故事閱讀 39,739評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喳坠,靈堂內(nèi)的尸體忽然破棺而出鞠评,到底是詐尸還是另有隱情,我是刑警寧澤壕鹉,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布剃幌,位于F島的核電站聋涨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏负乡。R本人自食惡果不足惜牛郑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敬鬓。 院中可真熱鬧淹朋,春花似錦、人聲如沸钉答。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽数尿。三九已至仑性,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間右蹦,已是汗流浹背诊杆。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留何陆,地道東北人晨汹。 一個(gè)月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像贷盲,于是被迫代替她去往敵國和親淘这。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評論 2 354