Axios是一个基于Promise的HTTP客户端,可用于浏览器和node.js中。它可以用于发出XMLHttpRequests,也可以用于封装网络请求。本文将介绍如何使用Axios封装网络请求。
1. 安装Axios
我们需要安装Axios,在安装之前,请确保你的系统中已经安装了Node.js和npm。安装Axios的命令如下:
$ npm install axios
2. 创建Axios实例
我们需要创建一个Axios实例,该实例可以用于发出请求,它可以接受一个配置对象,其中包括请求的URL、请求方法、请求头等信息。创建Axios实例的代码如下:
const axios = require('axios'); const instance = axios.create({ baseURL: 'http://example.com', timeout: 1000, headers: {'X-Custom-Header': 'foobar'} });
3. 封装请求
我们可以使用该实例封装请求了,Axios提供了多种请求方法,例如get、post、put、delete等,我们可以根据自己的需求来选择合适的请求方法。下面是一个简单的get请求的示例:
instance.get('/user', { params: { ID: 12345 } }) .then(function (response) { // 处理响应数据 }) .catch(function (error) { // 处理错误 });
上面的代码中,我们使用Axios实例发出了一个get请求,请求的URL为/user,并且将参数ID设置为12345。如果请求成功,将会调用then方法,在then方法中可以处理响应数据,如果请求失败,将会调用catch方法,在catch方法中可以处理错误。
4. 封装响应
在处理响应数据时,我们可以将响应数据封装成更加友好的格式,例如:
instance.get('/user', { params: { ID: 12345 } }) .then(function (response) { // 封装响应数据 const res = { code: 0, data: response.data, message: 'success' } return res; }) .catch(function (error) { // 处理错误 });
上面的代码中,我们将响应数据封装成了一个对象,其中包括code、data和message三个字段,我们可以根据自己的需求来自定义响应数据的格式。
5. 封装请求函数
我们可以将上面的代码封装成一个函数,以便在项目中多次使用,封装函数的代码如下:
function request(url, params) { return instance.get(url, { params }) .then(function (response) { // 封装响应数据 const res = { code: 0, data: response.data, message: 'success' } return res; }) .catch(function (error) { // 处理错误 }); }
上面的代码中,我们将Axios实例的get请求封装成了一个函数,函数接受两个参数,一个是请求的URL,另一个是请求的参数,函数将返回一个Promise对象,当请求成功时,将会返回封装的响应数据,当请求失败时,将会返回错误信息。
:使用Axios封装网络请求,需要安装Axios,创建Axios实例,使用该实例发出请求,并封装响应数据,将请求封装成函数,以便在项目中多次使用。