用axios 或 node-fetch 封装一个请求
时间: 2024-04-25 09:21:29 浏览: 287
当使用axios或node-fetch时,你可以封装一个常用的请求函数来简化代码和提高可重用性。以下是一个使用axios或node-fetch封装请求的示例:
使用axios封装请求的示例:
```javascript
const axios = require('axios');
async function sendRequest(url, method, data) {
try {
const response = await axios({
method: method,
url: url,
data: data
});
return response.data;
} catch (error) {
throw new Error(error.message);
}
}
// 使用示例
sendRequest('https://api.example.com/users', 'GET')
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
```
使用node-fetch封装请求的示例:
```javascript
const fetch = require('node-fetch');
async function sendRequest(url, method, data) {
try {
const response = await fetch(url, {
method: method,
body: JSON.stringify(data),
headers: { 'Content-Type': 'application/json' }
});
const responseData = await response.json();
return responseData;
} catch (error) {
throw new Error(error.message);
}
}
// 使用示例
sendRequest('https://api.example.com/users', 'GET')
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
```
在上述示例中,我们封装了一个名为`sendRequest`的函数,该函数接受三个参数:URL、请求方法(GET、POST等)和请求数据(可选)。函数内部使用了axios或node-fetch来发送请求,并处理返回的响应数据。如果请求出现错误,将抛出一个包含错误消息的异常。
你可以根据自己的需求进一步扩展和定制这个封装函数,例如添加请求头、处理其他类型的响应数据等。
希望这个示例对你有帮助!如果还有其他问题,请随时提问。
阅读全文