#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
4 min read
Question 29 of 62medium

What is EventEmitter in Node.js?

Understanding the EventEmitter class and event-driven programming.

What You'll Learn

  • What EventEmitter is
  • How to use it
  • Common patterns

What is EventEmitter?

EventEmitter is a class that allows objects to emit and listen for events. It's the foundation of Node.js event-driven architecture.

Basic Usage

code.jsJavaScript
const EventEmitter = require('events');

const emitter = new EventEmitter();

// Listen for event
emitter.on('greet', (name) => {
  console.log(`Hello, ${name}!`);
});

// Emit event
emitter.emit('greet', 'World');
// Output: Hello, World!

Common Methods

code.jsJavaScript
const emitter = new EventEmitter();

// on - add listener
emitter.on('event', callback);

// once - listener fires only once
emitter.once('event', callback);

// emit - trigger event
emitter.emit('event', arg1, arg2);

// off/removeListener - remove listener
emitter.off('event', callback);

// removeAllListeners
emitter.removeAllListeners('event');

// listenerCount
emitter.listenerCount('event');

Custom EventEmitter Class

code.jsJavaScript
class MyServer extends EventEmitter {
  constructor() {
    super();
  }

  start() {
    this.emit('started', { port: 3000 });
  }
}

const server = new MyServer();
server.on('started', (info) => {
  console.log(`Server on port ${info.port}`);
});
server.start();