@prequest/interceptor
TypeScript icon, indicating that this package has built-in type declarations

1.5.2 • Public • Published

@prequest/interceptor

拦截器中间件。

中间件模型可以更好的完成修改请求和拦截响应的需求,但为了方便习惯使用 axios 的用户,提供此中间件。

安装

npm install @prequest/interceptor

使用

import { prequest } from '@prequest/xhr'
import interceptorMiddleware from '@prequest/interceptor'

const interceptor = new InterceptorMiddleware()

// 修改请求参数
interceptor.request.use(
  request => {
    if (!request.path) throw new Error('can not find path')

    request.path = '/prefix' + request.path

    // 注意要将 request 参数返回
    return request
  },
  error => {
    console.log('modify request path fail', error)
    throw error
  }
)

// 修改响应
interceptor.response.use(
  response => {
    if (response.statusCode === 500) throw new Error('internal error')

    response.data = JSON.parse(response.data)

    // 注意要将 response 返回
    return response
  },
  error => {
    // 如果是某个错误
    if (error.message === 'internal error') {
      // 要进行什么操作

      return
    }

    // 否则将错误继续抛出
    throw error
  }
)

prequest.use(interceptor.run)

Package Sidebar

Install

npm i @prequest/interceptor

Weekly Downloads

5

Version

1.5.2

License

MIT

Unpacked Size

14.5 kB

Total Files

12

Last publish

Collaborators

  • thomas_han