對不起,我在這裏有幾個關於createReadStream()的問題。createReadStream()。pipe()回調
基本上,我正在做的是動態構建一個文件並在完成後使用fs將其傳輸給用戶。我正在使用.pipe()來確保正確調節(如果緩衝區已滿,請停止讀取,一旦沒有,請重新開始,等等。)以下是我的代碼示例。
http.createServer(function(req, res) {
var stream = fs.createReadStream('<filepath>/example.pdf', {bufferSize: 64 * 1024})
stream.pipe(res);
}).listen(3002, function() {
console.log('Server listening on port 3002')
})
我在另一個StackOverflow的問題讀取(抱歉,失去了它),如果你使用的常規res.send()和res.end()的.pipe()的偉大工程,因爲它調用.send和.end並添加限制。
對於大多數情況,這很好,除非我想在流完成時刪除文件而不使用.pipe()意味着我將不得不自己處理調節以獲得回調。
所以我猜我會想創建我自己的假「res」對象,它有一個.send()和.end()方法來完成res通常會做的事情,但是在.end )我會放置額外的代碼來清理生成的文件。我的問題基本上是如何解決這個問題?
幫助與此將不勝感激,謝謝!
[從NodeJS服務器下載文件]可能的重複(http://stackoverflow.com/questions/7288814/download-file-from-nodejs-server) – loganfsmyth 2013-02-19 16:55:16
這確實回答我的文件下載問題,謝謝!我將更新問題以僅反映.pipe()問題。 – 2013-02-19 17:49:11