📜  axios 节点 js - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:33.375000             🧑  作者: Mango

Axios 节点

Axios 是一个基于 Promise 的 HTTP 客户端,可用于浏览器和 Node.js。它使用 XMLHttpRequest 和 node 中的 http 模块作为处理请求的后端,具有简单易用的 API,具有拦截器(Interceptor)、取消请求、自动转换JSON等功能。

安装

首先需要安装 Node.js,之后使用 npm 命令进行安装。

npm install axios

如果你使用的是 Yarn 包管理器,可以使用以下命令进行安装。

yarn add axios
使用

在使用之前先导入 Axios。

const axios = require('axios');

或者使用 ES6 的 import 语法。

import axios from 'axios';

Axios 的 API 非常简单易用,每个 API 都返回一个 Promise 对象,可以用 then 和 catch 方法进行链式调用。

axios.get('/user')
  .then(response => console.log(response))
  .catch(error => console.log(error));
GET 请求
axios.get(url[, config])

url 是请求的 URL 地址,config 是可选的请求配置对象,如 headers、params、auth 等。

示例:

axios.get('/user?ID=12345')
  .then(response => console.log(response))
  .catch(error => console.log(error));
POST 请求
axios.post(url[, data[, config]])

url 是请求的 URL 地址,data 是请求体中的数据,config 是可选的请求配置对象,如 headers、params、auth 等。

示例:

axios.post('/user', {
    firstName: 'John',
    lastName: 'Doe'
  })
  .then(response => console.log(response))
  .catch(error => console.log(error));
并发请求

Axios 可以同时处理多个请求,使用 axios.all 和 axios.spread 方法。

axios.all([
    axios.get('/user/12345'),
    axios.get('/user/67890')
  ])
  .then(axios.spread((user1, user2) => {
    console.log(user1);
    console.log(user2);
  }))
  .catch(error => console.log(error));
拦截器

Axios 支持拦截器(Interceptor),用于在请求或响应被 then 或 catch 处理之前执行一些操作,如设置请求头、做数据转换等。

axios.interceptors.request.use(config => {
    config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');
    return config;
  }, error => {
    return Promise.reject(error);
  });

axios.interceptors.response.use(response => {
    return response.data;
  }, error => {
    return Promise.reject(error.response);
  });
取消请求

Axios 支持取消请求,需要使用 CancelToken。

const CancelToken = axios.CancelToken;
const source = CancelToken.source();

axios.get('/user', {
    cancelToken: source.token
  })
  .then(response => console.log(response))
  .catch(error => console.log(error));

source.cancel('请求被取消');
自动转换 JSON

Axios 默认会将响应数据转换为 JSON 格式,当响应数据为 JSON 格式时,也会自动转换为 JavaScript 对象。

axios.get('/user/12345')
  .then(response => console.log(response.data))
  .catch(error => console.log(error));
结语

Axios 是一个优秀的 HTTP 客户端库,它具有简单易用和拦截器等高级功能。Axios 在前后端开发中都能够发挥出很好的作用,建议掌握基本使用方法。