我通過http獲取一些二進制數據。我的代碼如下所示:node.js寫入http響應流
var writeStream = fs.createWriteStream(fileName);
request(url, function(err, res) {
res.socket.pipe(writeStream);
});
現在輸出文件已創建,但文件大小爲0. url正確,但我通過wget進行了驗證。
預先感謝&問候
我通過http獲取一些二進制數據。我的代碼如下所示:node.js寫入http響應流
var writeStream = fs.createWriteStream(fileName);
request(url, function(err, res) {
res.socket.pipe(writeStream);
});
現在輸出文件已創建,但文件大小爲0. url正確,但我通過wget進行了驗證。
預先感謝&問候
爲http.request
回調僅供一個參數,它是對所述請求的response的參考。嘗試
http.request(url, function(res) {
res.pipe(writeStream);
});
還要注意的是ClientResponse
實現ReadableStream
,所以你應該使用.pipe
而非.socket.pipe
。
我假設request
來自mikeal的請求庫,而不是http.request
的實例。在這種情況下,您可以簡單地執行request(url).pipe(writeStream);
請記住,出於調試目的,您可以始終管道到process.stdout
。
var writeStream = fs.createReadStream(fileName);
request(url, function(err, res) {
writeStream.pipe(res);
writeStream.on('end', function() {
//res.end({"status":"Completed"});
});
});
你只能將可讀的管道寫入可寫,而不是像你所建議的那樣。 – Salketer 2016-11-23 11:15:00
感謝。超級有用的提示在標準輸出 – 2017-07-18 15:31:06