EventEmitter
Create and consume event-driven APIs with Node.js EventEmitter.
Lesson content
🎯 Goal By the end of this lesson, you'll understand: What is EventEmitter? Why do we use it? How it works Common methods Real-world examples Interview questions What is EventEmitter? EventEmitter is a built-in Node.js class that allows objects to emit (trigger) events and listen for those events . It is provided by the events module. Simple Definition: EventEmitter enables communication between different parts of your application using events. Real-Life Example 🔔 Think of a doorbell . Visitor Presses Bell │ ▼ Doorbell Rings │ ▼ Home Owner Opens Door Press Bell → emit() Doorbell Event → Event Open Door → Listener ( on() ) Import EventEmitter const EventEmitter = require ( "events" ); Create an object: const eventEmitter = new EventEmitter (); Basic Example const EventEmitter = require ( "events" ); const eventEmitter = new EventEmitter (); eventEmitter . on( "greet" , () => { console . log( "Hello Ajay" ); }); eventEmitter . emit( "greet" ); Output Hello Ajay How It Works Register Listener │ ▼ eventEmitter.on() │ ▼ Wait... │ ▼ eventEmitter.emit() │ ▼ Listener Executes Passing Data const EventEmitter = require ( "events" ); const eventEmitter = new EventEmitter (); eventEmitter . on( "welcome" , ( name ) => { console . log( `Welcome ${ name } ` ); }); eventEmitter . emit( "welcome" , "Ajay" ); Output Welcome Ajay Multiple Listeners const EventEmitter = require ( "events" ); const eventEmitter = new EventEmitter (); eventEmitter . on( "login" , () => { console . log( "Save Login History" ); }); eventEmitter . on( "login" , () => { console . log( "Send Email" ); }); eventEmitter . emit( "login" ); Output Save Login History Send Email once() Method Runs only one time . const EventEmitter = require ( "events" ); const eventEmitter = new EventEmitter (); eventEmitter . once( "start" , () => { console . log( "Application Started" ); }); eventEmitter . emit( "start" ); eventEmitter . emit( "start" ); Output Application Started Removing a Listener const EventEmitter = require ( "events" ); const eventEmitter = new EventEmitter (); function greet () { console . log( "Hello" ); } eventEmitter . on( "welcome" , greet ); eventEmitter . off( "welcome" , greet ); eventEmitter . emit( "welcome" ); Output (No Output) Common Methods Method Description on() Register an event listener emit() Trigger an event once() Listen only once off() Remove a listener removeAllListeners() Remove all listeners for an event listenerCount() Count registered listeners Real-Life Example 🏦 ATM Transaction Withdraw Money │ ▼ Transaction Event │ ┌──────┼─────────┐ ▼ ▼ ▼ Update Balance Send SMS Save Transaction One event triggers multiple actions. EventEmitter Flow Application │ ▼ Register Listener (on) │ ▼ emit("event") │ ▼ Listener Executes Where is EventEmitter Used? ✅ HTTP Server Events ✅ Streams ✅ File System Events ✅ Chat Applications ✅ Logging Systems ✅ Notifications Interview Question What is the output? const EventEmitter = require ( "events" ); const emitter = new EventEmitter (); emitter . on( "test" , () => console . log( "A" )); emitter . emit( "test" ); Output A Best Practices ✅ Use meaningful event names. ✅ Use once() for one-time events. ✅ Remove unused listeners using off() . ❌ Avoid adding too many listeners unnecessarily, as it can increase memory usage. Key Points ✅ EventEmitter is a built-in Node.js class from the events module. ✅ emit() triggers an event. ✅ on() registers a listener. ✅ once() executes a listener only once. ✅ Multiple listeners can respond to the same event. 🧠 Easy Formula Create EventEmitter │ ▼ Register Listener (on) │ ▼ Emit Event (emit) │ ▼ Listener Executes emit() → Trigger Event on() → Listen Event once() → Listen Once off() → Remove Listener Remember: 📢 emit() = Fire an event 👂 on() = Listen for an event 🔁 once() = Listen only the first time 🚀 EventEmitter enables event-driven programming in Node.js