Node.js Design Patterns Third Edition Exercise Solutions - PacktPublishing/Node.js-Design-Patterns-Third-Edition GitHub Wiki
In this page, we are collecting solutions for the exercises proposed in the book directly from the readers.
If you have completed some of them and want to share your solution, please edit this page and link your repository (or gist) with the solution.
This is the expected format for a new entry:
- [Solution](<LINK TO YOUR SOLUTION>) ([@<YOUR GITHUB USERNAME>](<YOUR GITHUB PROFILE URL>))
Make sure to use the preview mode, to validate that your entry will be shown correctly!
Thank you! 🤩
Chapter 1: The Node.js Platform
No exercise in this chapter
Chapter 2: The Module System
No exercise in this chapter
Chapter 3: Callbacks and Events
3.1 A simple event
- Solution (@hossam7amdy)
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@kasymbayaman)
- Solution (@hshahsahebi)
- Solution (@jormartin77)
- Solution (@dragons0458)
- Solution (@alvaro-escalante)
- Solution (@levanchien)
- Solution (@odoldotol)
- Solution (@sgarmendia)
- Solution (@r2abreu)
3.2 Ticker
- Solution (@hossam7amdy)
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@stuartambient)
- Solution (@kasymbayaman)
- Solution (@jormartin77)
- Solution [Test] (@chengyil)
- Solution (@dragons0458)
- Solution (@CurtisSlone)
- Solution (@alvaro-escalante)
- Solution (@levanchien)
- Solution (@r2abreu)
- Solution (@odoldotol)
- Solution (@sgarmendia)
- Solution (@newbenhd)
- Solution (Sniper30)
3.3 A simple modification
- Solution (@hossam7amdy)
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@kasymbayaman)
- Solution [Test] (@chengyil)
- Solution (@dragons0458)
- Solution (@alvaro-escalante)
- Solution (@levanchien)
- Solution (@r2abreu)
- Solution (@odoldotol)
- Solution (Sniper30)
3.4 Playing with errors
- Solution (@hossam7amdy)
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@stuartambient)
- Solution (@kasymbayaman)
- Solution (@hshahsahebi)
- Solution [Test] (@chengyil)
- Solution (@dragons0458)
- Solution (@alvaro-escalante)
- Solution (@levanchien)
- Solution (@r2abreu)
- Solution (@odoldotol)
- Solution (@ignatij)
- Solution (@newbenhd)
- Solution (Sniper30)
Chapter 4: Asynchronous Control Flow Patterns with Callbacks
4.1 File concatenation
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@kasymbayaman)
- Solution (@hshahsahebi)
- Solution [Test] (@chengyil)
- Solution (@bboydflo)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@odoldotol)
- Solution (@ahmedeasa)
- Solution (@r2abreu)
- Solution (@Sniper30)
4.2 List files recursively
- Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@MattLongCode)
- Solution (@kasymbayaman)
- Solution (@hshahsahebi)
- Solution (@bboydflo)
- Solution (@hosseinnedaee)
- Solution (@CurtisSlone)
- Solution (@levanchien)
- Solution (@odoldotol)
- Solution (@ignatij)
- Solution (@sgarmendia)
- Solution (@ahmedeasa)
- Solution (@gwyndoln)
- Solution (@Sniper30)
4.3 Recursive find
- Solution(@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@stuartambient)
- Solution (@Jack-Barry)
- Solution (@kasymbayaman)
- Solution (@hshahsahebi)
- Solution (@bboydflo)
- Solution (@hosseinnedaee)
- Solution (@jurajmajerik)
- Solution (@levanchien)
- Solution (@odoldotol)
- Solution (@ignatij)
- Solution (@ahmedeasa)
- Solution (@gwyndoln)
- Solution (@Sniper30)
Chapter 5: Asynchronous Control Flow Patterns with Promises and Async/Await
Promise.all()
5.1 Dissecting - Solution (@sabashavidze)
- Solution (@enricoschaaf)
- Solution (@Jack-Barry)
- Solution (@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@odoldotol)
- Solution (@ignatij)
- Solution (@sgarmendia)
- Solution (@ahmedeasa)
5.2 TaskQueue with promises
- Solution (@sabashavidze)
- Solution (@Jack-Barry)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@odoldotol)
- Solution (@ignatij)
5.3 Producer-consumer with promises
- Solution (@sabashavidze)
- Solution (@stuartambient)
- Solution (@hosseinnedaee)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@odoldotol)
- Solution (@ignatij)
map()
5.4 An asynchronous - Solution (@sabashavidze)
- Solution (@Jack-Barry)
- Solution (@stuartambient)
- Solution (@nebarf)
- Solution (@hosseinnedaee)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@sabry-awad97)
- Solution (@odoldotol)
- Solution (@ignatij)
Chapter 6: Coding with Streams
6.1 Data compression efficiency
- Solution (@gabrielpalomino)
- Solution (@ahmdsolmn)
- Solution(@CurtisSlone)
- Solution (@hosseinnedaee)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@factordog)
- Solution (@sabashavidze)
- Solution (@ignatij)
6.2 Stream data processing
- Solution (@sabashavidze)
- Solution (@gabrielpalomino)
- Solution (@lomm28)
- Solution(@CurtisSlone)
- Solution (@hosseinnedaee)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@factordog)
- Solution (@ignatij)
6.3 File share over TCP
- Solution(@sabashavidze)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
- Solution (@jingen11)
6.4 Animations with Readable streams
Chapter 7: Creational Design Patterns
7.1 Console color factory
- Solution(@sabashavidze)
- Solution (@suduttablr)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@odoldotol)
- Solution (@ignatij)
7.2 Request builder
- Solution(@sabashavidze)
- Solution (@suduttablr)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
7.3 A tamper-free queue
- Solution(@sabashavidze)
- Solution (@cedricsch)
- Solution (@nebarf)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
Chapter 8: Structural Design Patterns
8.1 HTTP client cache
- Solution(@sabashavidze)
- Solution (@cedricsch)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
8.2 Timestamped logs
- Solution(@sabashavidze)
- Solution (@cedricsch)
- Solution (@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
8.3 Colored console output
- Solution (@cedricsch)
- Solution(@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
8.4 Virtual filesystem
- Solution(@sabashavidze)
- Solution (@eslamelkholy)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
8.5 The lazy buffer
- Solution(@sabashavidze)
- Solution (@davide-88)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
Chapter 9: Behavioral Design Patterns
Exercise 9.1 Logging with Strategy
- Solution(@sabashavidze)
- Solution (@nebarf)
- Solution (@davide-88)
- Solution (@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
Exercise 9.2 Logging with Template
- Solution(@sabashavidze)
- Solution (@davide-88)
- Solution (@CurtisSlone)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
Exercise 9.3 Warehouse item
- Solution(@sabashavidze)
- Solution (@davide-88)
- Solution (@levanchien)
- Solution (@kasymbayaman)
- Solution (@ignatij)
Exercise 9.4 Logging with Middleware
Exercise 9.5 Queues with iterators
Chapter 10: Universal JavaScript for Web Applications
10.1 A matter of style
10.2 Proper data management
10.3 Pagination and search
No solution yet, please submit yours :)
10.4 A Universal... Blog!
No solution yet, please submit yours :)
Chapter 11: Advanced Recipes
11.1 Proxy with pre-initialization queues
11.2 Batching and caching with callbacks
11.3 Deep async cancelable
11.4 Compute farm
Chapter 12: Scalability and Architectural Patterns
12.1 A scalable book library
No solution yet, please submit yours :)
12.2 Exploring the Z-axis
12.3 Music addiction
No solution yet, please submit yours :)
Chapter 13: Messaging and Integration Patterns
13.1 History service with streams
13.2 Multiroom chat
No solution yet, please submit yours :)
13.3 Tasks that stop
No solution yet, please submit yours :)
13.4 Reliable task processing with ZeroMQ
No solution yet, please submit yours :)
13.5 Data aggregator
No solution yet, please submit yours :)
13.6 Worker status CLI
No solution yet, please submit yours :)
13.7 Worker status UI
No solution yet, please submit yours :)
13.8 Pre-initialization queues are back
No solution yet, please submit yours :)
13.9 Request/reply with Redis Streams
No solution yet, please submit yours :)
13.10 Kafka
No solution yet, please submit yours :)