Nodejs网络请求库axios的使用

发布于 1周前 作者 phonegap100 来自 nodejs/Nestjs

Nodejs网络请求库axios的使用
Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。它提供了许多功能,如拦截请求和响应、转换请求和响应数据、取消请求等。以下是 Axios 在 Node.js 中的一些基本用法。

安装

首先需要安装 Axios:

npm install axios

基本用法

发送 GET 请求

const axios = require('axios');

axios.get('https://api.example.com/data')
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.error(error);
  });

发送 POST 请求

const axios = require('axios');

axios.post('https://api.example.com/submit', {
        firstName: 'Fred',
        lastName: 'Flintstone'
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.error(error);
      });

配置请求

你可以通过传递一个配置对象来定制你的请求:

axios({
  method: 'post',
  url: 'https://api.example.com/submit',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  },
  auth: {
    username: 'myUsername',
    password: 'myPassword'
  }
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.error(error);
});

拦截请求和响应

你可以使用 axios.interceptors.request.use()axios.interceptors.response.use() 来拦截请求和响应:

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

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

取消请求

Axios 提供了取消请求的功能,这可以通过创建一个 CancelToken 或者使用 CancelToken 的源对象来实现:

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

axios.get('/user/12345', {
  cancelToken: source.token
}).catch(function (thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message);
  } else {
    // 处理错误
  }
});

// 要取消请求(message 参数是可选的)
source.cancel('Operation canceled by the user.');

以上就是 Axios 在 Node.js 中的基本用法。希望对你有所帮助!


3 回复

当然!Axios 是一个基于 promise 的 HTTP 库,可以用于浏览器和 node.js 中。它非常强大且易于使用。下面是一些基本用法:

  1. 安装

    npm install axios
  2. 发起GET请求

    const axios = require('axios');
    
    axios.get('https://api.example.com/data')
      .then(response => {
        console.log(response.data);
      })
      .catch(error => {
        console.error("Oops, something went wrong: ", error);
      });
  3. 发起POST请求

    axios.post('https://api.example.com/submit', {
      firstName: 'Fred',
      lastName: 'Flintstone'
    })
    .then(response => {
      console.log(response);
    })
    .catch(error => {
      console.error("Error submitting data: ", error);
    });
  4. 添加请求配置

    axios({
      method: 'post',
      url: 'https://api.example.com/submit',
      data: {
        firstName: 'Fred',
        lastName: 'Flintstone'
      },
      headers: {'X-Custom-Header': 'CustomValue'}
    })
    .then(response => {
      console.log(response);
    })
    .catch(error => {
      console.error("Error: ", error);
    });

希望这些示例能帮到你!如果需要更深入的功能,比如拦截器、取消请求等,Axios文档是你的最佳朋友!


Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。它支持浏览器和 Node.js 两种环境,并且具有很多优点,如拦截请求和响应、自动转换请求数据和响应数据、取消请求、客户端支持防止 CSRF/XSRF 等。

以下是如何在 Node.js 中使用 Axios 进行基本的 GET 和 POST 请求的例子:

  1. 首先,你需要安装 Axios。你可以通过 npm 来安装:

    npm install axios
  2. 使用 Axios 发送 GET 请求:

    const axios = require('axios');
    
    async function fetchData() {
        try {
            const response = await axios.get('https://jsonplaceholder.typicode.com/posts/1');
            console.log(response.data);
        } catch (error) {
            console.error(error);
        }
    }
    
    fetchData();
  3. 使用 Axios 发送 POST 请求:

    const axios = require('axios');
    
    async function postData() {
        try {
            const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
                title: 'foo',
                body: 'bar',
                userId: 1
            });
            console.log(response.data);
        } catch (error) {
            console.error(error);
        }
    }
    
    postData();
  4. Axios 支持多种请求配置选项,如设置请求头、超时时间等:

    const axios = require('axios');
    
    async function customRequest() {
        try {
            const response = await axios({
                method: 'get',
                url: 'https://jsonplaceholder.typicode.com/posts/1',
                headers: {
                    'Content-Type': 'application/json'
                },
                timeout: 5000 // 设置超时时间为5秒
            });
            console.log(response.data);
        } catch (error) {
            console.error(error);
        }
    }
    
    customRequest();

以上就是在 Node.js 中使用 Axios 的一些基本示例。Axios 提供了丰富的功能,可以根据实际需求进行更复杂的配置和操作。

Axios 是一个基于 Promise 的 HTTP 库,可运行于浏览器和 node.js 中。以下是一个基本的使用示例:

const axios = require('axios');

// 发送GET请求
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

// 发送POST请求
axios.post('https://api.example.com/data', { key: 'value' })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

记得安装axios:npm install axios

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!