Node.js написать http-ответ для потока
Я получаю некоторые двоичные данные по http. Мой код выглядит так:
var writeStream = fs.createWriteStream(fileName);
request(url, function(err, res) {
res.socket.pipe(writeStream);
});
теперь создается выходной файл, но размер файла равен 0. URL-адрес правильный, но я проверил, что с wget.
Спасибо заранее и наилучшие пожелания
Ответы
Ответ 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"});
});
});