对不起,我在这里有几个关于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