Nodejs 有哪个 http 请求框架,可以方便的分别指定 connect timeout、read timeout 时间吗?
null
Nodejs 有哪个 http 请求框架,可以方便的分别指定 connect timeout、read timeout 时间吗?
3 回复
axios 可以直接设置 timeout 参数
在Node.js中,原生的http
模块和常用的第三方库如axios
、node-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
,结合额外的配置或中间件来实现。