When reading fails you might not want to start over again completely but rather resume
after the last chunk you received. First, pass ts : true as an option so you don't only
get the stored chunks but also when they were written:

streams.createReadStream('file',{ ts :true}).on('data',console.log);

// => { ts : 1363783762087, data : <Buffer aa aa> }

Now you only need store the timestamp of the last read chunk in a variable and you can
resume reading after an error, passing { since : ts }:

streams.createReadStream('file',{ since :1363783762087}).on('data',console.log);