在 Node.js 中使用 Axios 进行 HTTP 请求
Axios 是一个非常方便的 JavaScript 库,可以在 Node.js 中执行 HTTP 请求。
介绍
Axios 是一个非常受欢迎的 JavaScript 库,可以用来执行 HTTP 请求,适用于浏览器和 Node.js 平台。
它支持所有现代浏览器,包括对 IE8 及更高版本的支持。
它基于 Promise,并且可以使用 async/await 代码非常容易地执行 XHR 请求。
与原生的 Fetch API 相比,使用 Axios 具有许多优势:
- 支持旧版浏览器(Fetch 需要使用 polyfill)
 - 可以中断请求
 - 可以设置响应超时
 - 内置 CSRF 保护
 - 支持上传进度
 - 执行自动的 JSON 数据转换
 - 可用于 Node.js
 
安装
可以使用 npm 安装 Axios:
1  | npm install axios  | 
或者使用 yarn 安装:
1  | yarn add axios  | 
可以通过 unpkg.com 在页面中引入 Axios:
1  | <script src="https://unpkg.com/axios/dist/axios.min.js"></script>  | 
Axios API
可以使用 axios 对象发起 HTTP 请求:
我使用
foo和bar作为 随机名称。你可以输入任何名称替换它们。
1  | axios({  | 
但为了方便起见,你通常会使用以下方法:
axios.get()axios.post()
(就像在 jQuery 中使用 $.get() 和 $.post() 而不是 $.ajax() 一样)
Axios 还提供了一些不太常用但仍然有用的 HTTP 动词方法:
axios.delete()axios.put()axios.patch()axios.options()
以及一个获取请求的 HTTP 标头(丢弃 body)的方法:
axios.head()
GET 请求
一种方便的使用 Axios 的方式是使用现代(ES2017)的 async/await 语法。
以下是一个在 Node.js 中使用 axios.get() 查询 Dog API 获取狗品种列表的示例,并统计数量:
1  | const axios = require('axios');  | 
如果你不想使用 async/await,你可以使用 Promise 语法:
1  | const axios = require('axios');  | 
在 GET 请求中添加参数
GET 请求的响应可以在 URL 中包含参数,例如:https://site.com/?foo=bar。
通过 Axios,你可以使用该 URL 进行请求:
1  | axios.get('https://site.com/?foo=bar');  | 
或者你可以在选项中使用 params 属性:
1  | axios.get('https://site.com/', {  | 
POST 请求
执行 POST 请求与执行 GET 请求类似,只需要使用 axios.post 替代 axios.get:
1  | axios.post('https://site.com/');  | 
第二个参数是一个包含 POST 参数的对象:
1  | axios.post('https://site.com/', {  | 
tags: [“Node.js”, “Axios”, “HTTP”, “GET”, “POST”]