1. Flow control is important in Node.js for asynchronous programming to handle tasks that must execute in a specific order or to collect results.
2. Common patterns include serial execution where tasks run one after another, parallel execution where multiple tasks run concurrently, and limited parallel execution where a subset of tasks run at a time.
3. Popular flow control libraries like Async, Step, and Slide provide functions to implement patterns like serial execution with waterfall and parallelMap. This allows complex asynchronous code to be written in a readable, synchronous-looking style.