Absolutely! Poking around I found one module that could do it - I'm sure there are more (and better ones, too):
https://github.com/wellawaretech/node-zipstream
In the example there you would .pipe() out to an HTTP response rather than a file, presumably.