地址:github.com/afishhhhh/w…javascript
weapp.request 是基於 wx.request 進行擴展的一個網絡組件,相較於 wx.request 有更簡單的調用方式。html
目前組件主要提供兩個功能,分別的 Promise 以及緩存控制,使用 Promise 以後能讓原先 wx.request 的調用變得更加簡潔,避免了回調函數,對於服務器返回的數據能夠根據項目須要在本地進行緩存。java
後續會繼續作更新,歡迎各位 JS 大佬提出改進意見。git
npm install weapp.request -S
複製代碼
const request = require('weapp.request')
複製代碼
發送一個 GET 請求github
request('https://api.github.com').then(onFulfilled).catch(onRejected)
複製代碼
由於全部的 request
調用都會返回一個 Promise
,因此能夠使用 then
對請求結果進行進一步處理,用 catch
來捕獲內部拋出的錯誤。npm
發送一個 GET 請求,並寫入緩存json
request('https://api.github.com', {}, {
cache: true
})
複製代碼
發送一個 POST 請求api
request.post('https://api.github.com', {
user: 'afishhhhh'
})
複製代碼
除了 GET 請求之外,全部其餘的 method 都要以 request.method
的形式進行調用。緩存
根據微信官方文檔的說明,以上 POST 方法且 Content-Type
默認爲 application/json
,會對數據進行 JSON 序列化。bash
若是須要以 query string 的形式將數據發送給服務器,能夠採起如下調用方法,不須要顯示的將 Content-Type
寫爲 application/x-www-form-urlencoded
:
request.post('https://api.github.com', {
form: {
user: 'afishhhhh'
}
})
複製代碼
全局配置
配置選項 | 類型 | 說明 | 必填 | 默認值 |
---|---|---|---|---|
baseUrl | String/Undefined |
基礎請求路徑 | 否 | |
cacheMaxAge | Number/Undefined |
緩存有效期,時間單位爲秒 | 否 | 1800 |
validStatusCode | Function/Undefined |
status code 合法區間,該函數接受一個參數,並返回一個 Boolean |
否 | code => code >= 200 && code < 300 |
request.config({
baseUrl: 'https://api.github.com'
})
複製代碼
request(url, params, options)
發起一個 GET 請求。
params
:請求參數,類型爲 Object
,非必填。
options
:配置項,類型爲 Object
,非必填,能夠有如下屬性值:
屬性 | 類型 | 必填 | 默認值 | 說明 |
---|---|---|---|---|
cache | Boolean/Undefined |
否 | undefined |
undefined 表示從服務器獲取最新數據,不寫入緩存;true 表示優先從緩存中獲取數據,若是緩存中不存在該數據或者緩存已失效,則從服務器獲取數據,並寫入緩存;false 表示優先從服務器獲取數據,並將數據寫入緩存 |
header | 同微信官方文檔 | |||
dataType | 同微信官方文檔 | |||
responseType | 同微信官方文檔 |
request.method(url, params, options)
method
能夠是 get
,post
等等。
request.config(options)
options
:配置項,類型爲 Object
。