linux

Node.js日志中网络请求失败怎么处理

小樊
42
2025-07-20 12:29:23
栏目: 编程语言

在Node.js中,处理网络请求失败的方法取决于你使用的库或框架。以下是一些常见的库和框架中处理网络请求失败的方法:

  1. 使用原生的httphttps模块:
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事件来处理网络请求失败的情况。

  1. 使用axios库:
const axios = require('axios');

axios.get('http://example.com')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(`请求遇到问题: ${error.message}`);
  });

在这个例子中,我们使用catch方法来捕获并处理网络请求失败的情况。

  1. 使用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方法中处理它。

总之,处理网络请求失败的关键是监听错误事件或捕获异常,并根据实际情况采取适当的措施,例如重试请求、返回错误信息或执行其他恢复操作。

0
看了该问题的人还看了