You can do this easily with fs.watchFile() and fs.read(). I have a gist which uses fs.watchFile() on a MySQL binlog to stream off queries as they are written to the binary log:
https://gist.github.com/958588 The file handling logic starts at line 174. I don't see why everyone is so quick to load up tail when you can write this in pure node in 12 lines or so. On Thu, Feb 2, 2012 at 2:00 PM, fent <[email protected]> wrote: > BTW, I was thinking of coding some type of service like this that lets > users download files as they're being uploaded. Would like to see what > you have if you don't mind. > > On Feb 2, 3:30 am, 宓俊 <[email protected]> wrote: > > I want the user to be able to download a file while it is uploading. So I > > write this code to test. > > > > var fs = require('fs'); > > > > > > > > > > > > > > > > > > > > > var writeStream = fs.createWriteStream(__dirname + "/uploading.txt"); > > > writeStream.on('open', function(){ > > > console.log('Write stream has open'); > > > //Write a number every 1 second. > > > var i = 1; > > > var repeat = function(){ > > > writeStream.write(i); > > > console.log('Number ' + i + ' has been write to the file'); > > > i = i + 1; > > > setTimeout(repeat, 1000); > > > }; > > > repeat(); > > > var readStream = fs.ReadStream(__dirname + "/uploading.txt"); > > > readStream.on('data', function(data){ > > > console.log('Data is coming: ' + data); > > > }); > > > readStream.on('end', function(){ > > > console.log('Stream END'); > > > }); > > > }); > > > > But the result is like this > > > > Write stream has open > > > > > Number 1 has been write to the file > > > Data is coming: 1 > > > Stream END > > > Number 2 has been write to the file > > > Number 3 has been write to the file > > > Number 4 has been write to the file > > > > When the reading speed is faster than the writing speed, I will receive a > > 'end' signal, rather than paused. > > > > So how to deal with this problem? > > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
