Nodejs 有哪个 http 请求框架,可以方便的分别指定 connect timeout、read timeout 时间吗?

发布于 1周前 作者 h691938207 来自 nodejs/Nestjs

null
Nodejs 有哪个 http 请求框架,可以方便的分别指定 connect timeout、read timeout 时间吗?

3 回复

axios 可以直接设置 timeout 参数

在Node.js中,原生的http模块和常用的第三方库如axiosnode-fetch等都可以用于发起HTTP请求,并允许你指定连接超时(connect timeout)和读取超时(read timeout)时间。

以下是一个使用原生http模块设置超时时间的示例:

const http = require('http');

const options = {
  hostname: 'example.com',
  port: 80,
  path: '/',
  method: 'GET',
  timeout: 5000, // 设置总的超时时间(包括连接和读取)
};

const req = http.request(options, (res) => {
  // 处理响应
  res.on('data', (chunk) => {
    console.log(`BODY: ${chunk}`);
  });

  res.on('end', () => {
    console.log('No more data in response.');
  });
});

req.on('timeout', () => {
  console.log('Request timed out.');
  req.abort();
});

req.on('error', (e) => {
  console.error(`Problem with request: ${e.message}`);
});

req.end();

需要注意的是,上述示例中的timeout选项设置了总的超时时间,它涵盖了连接和读取两个过程。如果你需要分别设置连接超时和读取超时,可能需要借助更高级的HTTP客户端库,如axios,结合额外的配置或中间件来实现。

回到顶部