EventEmitter — Complete Guide
EventEmitter — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Node.js Tutorial on Toolliyo Academy.
On this page
EventEmitter
This lesson covers EventEmitter. You do not need to memorize everything. Understand the flow first.
What you will learn
- What eventemitter means — in normal words, not textbook words
- How it works step by step
- Code you can run today on your laptop
- Where teams use this in real projects
Before you start
- Software: Node.js LTS from nodejs.org, VS Code, and a terminal
- Knowledge: Earlier lessons in this Node.js course
- Previous lesson: SSE — Complete Guide
Explain it simply
EventEmitter is a built-in class for custom events inside your app — decouple modules without tight imports.
Why developers use this
- Needed for chat and live data
- Socket.IO simplifies the hard parts
- Fun to demo in interviews
How it works (step by step)
- Client opens a persistent connection (WebSocket / Socket.IO).
- Server listens for named events (join, message, typing).
- Server pushes updates to one user, a room, or everyone.
- On disconnect, clean up listeners so memory does not leak.
Code example — type this yourself
const { EventEmitter } = require('events');
const emitter = new EventEmitter();
emitter.on('paid', (id) => console.log('Order paid', id));
emitter.emit('paid', 101);
Many Node core APIs inherit from EventEmitter (streams, servers).
What each part does
const { EventEmitter } = require('events');— Loads a built-in module or package you installed with npm.const emitter = new EventEmitter();— Line 2: runs as written.emitter.on('paid', (id) => console.log('Order paid', id));— Event pattern: listen with on, trigger with emit.emitter.emit('paid', 101);— Event pattern: listen with on, trigger with emit.
Real life: where EventEmitter shows up
A support chat widget uses EventEmitter so when an agent replies, the customer sees it instantly — no refresh button. In interviews, explain the trade-off you chose and what you would measure in production.
Try it yourself — hands-on
- Create a new file (e.g.
eventemitter-demo.js) in an empty folder - Type the example code for EventEmitter yourself — typing helps memory
- Run
nodeon that file and read the output - Change one line (a value, a message, a route path) and run again to see what breaks or improves
Common mistakes (avoid these)
- Skipping the terminal — EventEmitter only feels easy after you run code yourself.
Interview note
Senior interviews may ask how EventEmitter behaves under load, failure, or security review — mention logging, timeouts, and validation.
Summary
- You can explain EventEmitter in your own words
- You ran working code — not just read about it
- You know one mistake to avoid and one real place teams use this
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!