</>
Skip to content
Node.js lessons (17/44)

Node.js — Events

Import Events Module

const EventEmitter = require('events');

Basic Usage

const emitter = new EventEmitter();

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

// Emit event
emitter.emit('greet', 'John');

EventEmitter Methods

MethodDescription
on(event, listener)Add listener
once(event, listener)Add one-time listener
emit(event, ...args)Trigger event
off(event, listener)Remove listener
removeAllListeners()Remove all listeners

Multiple Listeners

emitter.on('data', (chunk) => {
    console.log('Listener 1:', chunk);
});

emitter.on('data', (chunk) => {
    console.log('Listener 2:', chunk);
});

emitter.emit('data', 'Hello');

Once Listener

emitter.once('connect', () => {
    console.log('Connected!');
});

emitter.emit('connect'); // Logs
emitter.emit('connect'); // Does nothing

Extending EventEmitter

class Server extends EventEmitter {
    start() {
        this.emit('started');
    }
}

const server = new Server();
server.on('started', () => console.log('Server started'));
server.start();

Error Events

emitter.on('error', (err) => {
    console.error('Error:', err.message);
});

emitter.emit('error', new Error('Something went wrong'));

Mini Practice

  1. Create an EventEmitter
  2. Add and remove listeners
  3. Use once for one-time events
  4. Extend EventEmitter in a class

Up Next

Continue with HTTP — building web servers.

Related Topics

Frequently Asked Questions about Events

What is Events in Node.js?

Events is a fundamental concept in Node.js. This lesson explains it step by step with clear examples, making it easy for beginners to understand.

How do I learn Events?

Start by reading the explanation above, then try the code examples. Practice by modifying the examples and experimenting with different values. Hands-on practice is the best way to learn Events.

Why is Events important in Node.js?

Events is essential for Node.js development. Understanding this concept will help you write better code and solve real-world problems more effectively.