Summary
In this chapter, we have shed some light on Node.js streams and their use case, but at the same time this should have thrown open a door to a programming paradigm with virtually unlimited possibilities. We learned why streams are so acclaimed by the Node.js community and we mastered their basic functionality, enabling us to discover more and navigate comfortably in this new world. We analyzed some advanced patterns and started to understand how to connect streams together in different configurations, grasping the importance of interoperability which is what makes streams so versatile and powerful.
If we can't do something with one stream, we probably can do it by connecting other streams together, and this works great with the one thing per module philosophy. At this point, it should be clear that streams are not just a good to know feature of Node.js; they are, instead, an essential part of this, a crucial pattern to handle binary data, strings, and objects. It's not by chance that...