Я использую следующий код для запроса OpenStreetMap (overpass-API). Он отлично работает с меньшими запросами, но с большим, который занимает около 10 минут, он генерирует только ответ на тайм-аут 504.
код:
var reqStr = "http://overpass.osm.rambler.ru/cgi/interpreter?data=...
console.time("query");
var stream = request(reqStr,{timeout: 3600000}).on('error', function(err) {
console.log(err)
}).pipe(fs.createWriteStream('resultExport.json'));
stream.on('finish', function () {
console.timeEnd("query");
});
ответ (resultExport.json):
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>504 Gateway Time-out</title>
</head><body>
<h1>Gateway Time-out</h1>
<p>The gateway did not receive a timely response
from the upstream server or application.</p>
</body></html>
Команда запроса имеет [тайм-аут: 3600] (секунды), а запрос получил {timeout: 3600000} (миллисекунды). Что еще я могу сделать, чтобы предотвратить тайм-аут и получить правильный ответ? Я немного не понимаю, откуда это взялось.