# @wangzhuoli/mp-axios

> 基于小程序wx.request封装类似axios的HTTP网络请求库，实现拦截器功能，支持取消请求功能。

Latest version **1.0.1** (published 2023-07-06) · ISC license · 0 weekly downloads

## Install

```sh
npm install @wangzhuoli/mp-axios
pnpm add @wangzhuoli/mp-axios
yarn add @wangzhuoli/mp-axios
bun add @wangzhuoli/mp-axios
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2023-07-06 |
| First published | 2023-07-06 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | wangzhuoli |
| Maintainers | wangzhuoli |

## Links

- npm: https://www.npmjs.com/package/@wangzhuoli/mp-axios
- Repository: https://github.com/wangzhuoli/mp-axios
- Homepage: https://github.com/wangzhuoli/mp-axios/blob/master/README.md
- Issues: https://github.com/wangzhuoli/mp-axios/issues
- npm.io page: https://npm.io/package/@wangzhuoli/mp-axios

## Recent versions

- 1.0.1 (latest) — 2023-07-06
- 1.0.0 — 2023-07-06

## README

### mp-axios
基于小程序wx.request封装类似axios的HTTP网络请求库，实现拦截器功能，支持取消请求功能。

### 安装
```
npm install @wangzhuoli/mp-axios
```

### 使用
config配置信息和[wx.request](https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html)一致

**axios(config)**
```javascript
import { createInstance } from '@wangzhuoli/mp-axios'

const axios = createInstance({ baseUrl: 'http://localhost:3000' })

axios({
  method: 'get',
  url: '/posts',
  data: { 
    page: 1 
  }
})
  .then(res => {
    console.log(res)
  })
  .catch(error => {
    console.log(error)
  })
```
**axios(url[, config])**
```javascript
// 发起一个 GET 请求 (默认请求方式)
axios('/posts')
  .then(res => {
    console.log(res)
  })
  .catch(error => {
    console.log(error)
  })
```
**请求方式别名**

为了方便起见，已经为所有支持的请求方法提供了别名。

axios.request(config)

axios.get(url[, config])

axios.delete(url[, config])

axios.head(url[, config])

axios.options(url[, config])

axios.post(url[, config]])

axios.put(url[, config]])

axios.trace(url[, config]])

axios.connect(url[, config]])

### 拦截器
````javascript
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
  });
````

### 取消请求
```javascript
import { CancelToken } from '@wangzhuoli/mp-axios'

const axios = createInstance({ baseUrl: 'http://localhost:3000' })

let cancel;
const cancelToken = new CancelToken(function(_cancel) {
  cancel = _cancel
})

axios({
  url: '/posts', data: { id: 2 }, method: 'get', cancelToken
})
  .then(result => {
    console.log(result)
  })
  .catch(error => {
    console.log(error)
  })

// 取消请求
cancel()
```

---
_Source: https://npm.io/package/@wangzhuoli/mp-axios · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
