地址:https://github.com/afishhhhh/weapp.requestjavascript
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 序列化。服务器
若是须要以 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
。