Node.js 中使用 Axios 进行 HTTP 请求

在前端开发中,我们经常需要与后端进行数据交互,而 HTTP 请求是实现这个过程的重要手段。Node.js 作为一种 JavaScript 运行环境,也可以通过第三方库 Axios 来进行 HTTP 请求。本文将详细介绍如何在 Node.js 中使用 Axios 进行 HTTP 请求,并提供示例代码和实用技巧。

什么是 Axios

Axios 是一个基于 Promise 的 HTTP 客户端,可以用于浏览器和 Node.js 环境中发送 HTTP 请求,支持各种请求类型和请求头设置,同时支持请求和响应拦截器和错误处理等功能。Axios 的优点在于其简单易用,同时具有强大的扩展性和可配置性。

安装和使用 Axios

在 Node.js 中使用 Axios 需要先安装它。可以通过 npm 命令进行安装:

安装完成后,就可以在代码中引入 Axios 模块并进行使用:

const axios = require('axios');

发送 GET 请求

使用 Axios 发送 GET 请求非常简单,只需要调用 axios.get() 方法并传入请求的 URL 即可:

axios.get('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

上面的代码会向 https://jsonplaceholder.typicode.com/posts 发送 GET 请求,并在请求成功时打印返回的数据,请求失败时打印错误信息。

发送 POST 请求

发送 POST 请求需要在 axios.post() 方法中传入请求的 URL 和请求体数据。可以通过传入一个 JavaScript 对象来设置请求头信息和请求体数据:

axios.post('https://jsonplaceholder.typicode.com/posts', {
  title: 'foo',
  body: 'bar',
  userId: 1
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

上面的代码会向 https://jsonplaceholder.typicode.com/posts 发送 POST 请求,并将请求体数据设置为 { title: 'foo', body: 'bar', userId: 1 },在请求成功时打印返回的数据,请求失败时打印错误信息。

设置请求头信息

在发送 HTTP 请求时,通常需要设置请求头信息来指定请求类型、编码方式、身份验证等信息。可以通过在 axios.get() 或 axios.post() 方法中传入一个 JavaScript 对象来设置请求头信息:

axios.get('https://jsonplaceholder.typicode.com/posts', {
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer token'
  }
})
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

上面的代码会向 https://jsonplaceholder.typicode.com/posts 发送 GET 请求,并设置请求头信息为 { 'Content-Type': 'application/json', 'Authorization': 'Bearer token' },在请求成功时打印返回的数据,请求失败时打印错误信息。

使用拦截器

Axios 支持请求和响应拦截器,可以在请求或响应被发送或接收前对其进行处理。可以通过 axios.interceptors.request.use() 和 axios.interceptors.response.use() 方法来设置请求和响应拦截器:

axios.interceptors.request.use(config => {
  console.log('request:', config);
  return config;
}, error => {
  console.error('request error:', error);
  return Promise.reject(error);
});

axios.interceptors.response.use(response => {
  console.log('response:', response);
  return response;
}, error => {
  console.error('response error:', error);
  return Promise.reject(error);
});

axios.get('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

上面的代码会向 https://jsonplaceholder.typicode.com/posts 发送 GET 请求,并在请求和响应被发送或接收前打印日志信息,请求成功时打印返回的数据,请求失败时打印错误信息。

错误处理

在发送 HTTP 请求时,可能会出现网络错误、服务器错误、请求超时等问题。可以通过在 axios.get() 或 axios.post() 方法中添加 .catch() 方法来捕获错误:

axios.get('https://jsonplaceholder.typicode.com/posts')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

上面的代码会向 https://jsonplaceholder.typicode.com/posts 发送 GET 请求,并在请求成功时打印返回的数据,请求失败时打印错误信息。

总结

本文介绍了如何在 Node.js 中使用 Axios 进行 HTTP 请求,包括发送 GET 和 POST 请求、设置请求头信息、使用拦截器和错误处理等内容。Axios 是一个非常实用的 HTTP 客户端库,能够帮助我们更方便地进行数据交互和网络通信。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65891aa7eb4cecbf2de4dd28


纠错
反馈