Working with Events in Node.js

📘 Node.js 👁 52 views 📅 Nov 05, 2025
⏱ Estimated reading time: 2 min

Node.js follows an event-driven architecture, where actions in the system trigger events, and specific functions (listeners) respond to those events.


1. What Is an Event?

An event is a signal that something has happened, such as:

  • A file finishing loading

  • A request reaching a server

  • A timer completing

Node.js reacts to these events instead of waiting for tasks to finish.


2. EventEmitter Class

Node.js provides the events module, which contains the EventEmitter class used to create and handle custom events.

const EventEmitter = require('events');

3. Creating and Using Events

Step 1: Create an Event Emitter Object

const emitter = new EventEmitter();

Step 2: Register an Event Listener

emitter.on('message', () => { console.log('Message event received'); });

Step 3: Trigger the Event

emitter.emit('message');

4. Passing Data with Events

emitter.on('sum', (a, b) => { console.log(a + b); }); emitter.emit('sum', 5, 10);

5. Common EventEmitter Methods

MethodDescription
.on()Register an event listener
.emit()Trigger an event
.once()Listen only once
.removeListener()Remove a listener
.removeAllListeners()Remove all listeners

6. Handling Errors in Events

Error events must be handled explicitly.

emitter.on('error', (err) => { console.error('Error:', err.message); }); emitter.emit('error', new Error('Something went wrong'));

7. Real-World Example

Event-Based Order System

emitter.on('orderPlaced', () => { console.log('Order received'); }); emitter.on('orderPlaced', () => { console.log('Processing payment'); }); emitter.emit('orderPlaced');

✔ Multiple listeners can respond to the same event.


8. Built-In Modules That Use Events

  • http – request and response events

  • fs – file read/write events

  • stream – data and end events

  • process – system-level events


9. Advantages of Event-Driven Programming

  • Efficient handling of multiple tasks

  • Non-blocking execution

  • Highly scalable

  • Cleaner separation of logic


10. Best Practices

  • Avoid too many listeners on one event

  • Always handle 'error' events

  • Use meaningful event names

  • Remove unused listeners


11. Summary

  • Node.js is built around events

  • Events are handled using EventEmitter

  • Events allow asynchronous, non-blocking code

  • Used extensively in Node.js core modules


🔒 Some advanced sections are available for Registered Members
Register Now

Share this Post


← Back to Tutorials

Popular Competitive Exam Quizzes