weapp.request
1.0.0
一個為微信小程式提供的,基於wx.request 擴充的網路請求元件庫。
npm install weapp.request -S
const request = require ( 'weapp.request' )
發送一個GET 請求
request ( 'https://api.github.com' ) . then ( onFulfilled ) . catch ( onRejected )
因為所有的request
呼叫都會傳回一個Promise
,所以可以使用then
對請求結果進一步處理,用catch
來捕捉內部拋出的錯誤。
發送一個GET 請求,並寫入快取
request ( 'https://api.github.com' , { } , {
cache : true
} )
發送一個POST 請求
request . post ( 'https://api.github.com' , {
user : 'afishhhhh'
} )
除了GET 請求以外,所有其他的method 都要以request.method
的形式進行呼叫。
根據微信官方文件的說明,以上POST 方法且Content-Type
預設為application/json
,會對資料進行JSON 序列化。
如果需要以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.interceptors.req.use(function (request) {
request.header['X-Tag'] = 'weapp.request'
// return request 可以显式地返回一个 request,如果没有 return,则默认返回当前 request
})
回應攔截器同理。
// 移除请求拦截器
request.interceptors.req.remove()
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
。
This code is distributed under the terms and conditions of the MIT license.