我必须从API中获取数据,这些数据有一定限制。那就是为什么我需要使用代理。我用auth购买了3个代理。要获取数据,我使用节点request
库,但是如果有人向我提出更好的方法-我将使用它。我制作了中间件,该中间件通过代理发出请求:
_getAPI(url, connection) { // eslint-disable-line
return new Promise((resolve) => {
// const options = Object.assign(connection, { path: url });
const timer = timeEpoch();
request({ url: url, proxy: connection}, (error, response, body) => {
console.log(`Done ${ timeEpoch() - timer }ms`);
if (!error && response.statusCode === 200) {
const data = JSON.parse(body);
if (data.Response === 'Error') {
console.log('------- Error');
console.log(data);
resolve({});
}
resolve(data);
} else {
if (error && this.env !== 'production') {
console.log('------- error');
console.log(error);
}
resolve({});
}
});
});
}
一切正常。但是响应时间看起来更长一些。我认为这是因为每次请求时我都会建立新的代理连接。如何为所有代理连接设置keepAlive
?