在Node.js中,处理网络请求失败的方法取决于你使用的库或框架。以下是一些常见的库和框架中处理网络请求失败的方法:
http
或https
模块:const http = require('http');
const options = {
hostname: 'example.com',
port: 80,
path: '/',
method: 'GET'
};
const req = http.request(options, (res) => {
console.log(`状态码: ${res.statusCode}`);
res.on('data', (chunk) => {
console.log(`响应主体: ${chunk}`);
});
});
req.on('error', (e) => {
console.error(`请求遇到问题: ${e.message}`);
});
req.end();
在这个例子中,我们监听error
事件来处理网络请求失败的情况。
axios
库:const axios = require('axios');
axios.get('http://example.com')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(`请求遇到问题: ${error.message}`);
});
在这个例子中,我们使用catch
方法来捕获并处理网络请求失败的情况。
fetch
API(在Node.js 17.5.0及更高版本中可用):fetch('http://example.com')
.then(response => {
if (!response.ok) {
throw new Error(`HTTP错误! 状态: ${response.status}`);
}
return response.text();
})
.then(data => {
console.log(data);
})
.catch(error => {
console.error(`请求遇到问题: ${error.message}`);
});
在这个例子中,我们检查响应对象的ok
属性来判断请求是否成功。如果不成功,我们抛出一个错误,并在catch
方法中处理它。
总之,处理网络请求失败的关键是监听错误事件或捕获异常,并根据实际情况采取适当的措施,例如重试请求、返回错误信息或执行其他恢复操作。