Node.js написать http-ответ для потока - программирование

Node.js написать http-ответ для потока

Я получаю некоторые двоичные данные по http. Мой код выглядит так:

var writeStream = fs.createWriteStream(fileName);
request(url, function(err, res) {
    res.socket.pipe(writeStream);
});

теперь создается выходной файл, но размер файла равен 0. URL-адрес правильный, но я проверил, что с wget.

Спасибо заранее и наилучшие пожелания

4b9b3361

Ответ 1

Обратный вызов http.request содержит только один аргумент, который является ссылкой на response запроса. Попробуйте

http.request(url, function(res) {
    res.pipe(writeStream);
});

Также обратите внимание, что ClientResponse реализует ReadableStream, поэтому вы должны использовать .pipe, а не .socket.pipe.

Ответ 2

Я предполагаю, что здесь request находится из библиотеки запросов mikeal, а не является экземпляром http.request. В этом случае вы можете просто сделать request(url).pipe(writeStream);

Помните, что для целей отладки вы всегда можете подключиться к process.stdout.

Ответ 3

var writeStream = fs.createReadStream(fileName);
request(url, function(err, res) {
  writeStream.pipe(res);
  writeStream.on('end', function() {
    //res.end({"status":"Completed"});
  });
});