Node.js Events Module

Node.js Events Module

Node.js is built on an event-driven architecture.
The Events Module allows you to create, listen, and handle custom events in your application.

It is used internally by many Node.js core modules like:
✔ HTTP
✔ Streams
✔ File System
✔ Timers


Import Events Module

const EventEmitter = require("events");

⭐ 1. Create an Event Emitter

const EventEmitter = require("events");
const emitter = new EventEmitter();

⭐ 2. Listening to an Event (on)

emitter.on("greet", () => {
console.log("Hello from Node.js Events!");
});

⭐ 3. Emitting an Event (emit)

emitter.emit("greet");

Output:

Hello from Node.js Events!

⭐ Full Example

const EventEmitter = require("events");

const emitter = new EventEmitter();

emitter.on(“welcome”, () => {
console.log(“Welcome to the Event System!”);
});

emitter.emit(“welcome”);


⭐ 4. Passing Arguments to Events

emitter.on("sayHello", (name) => {
console.log(Hello, ${name}!);
});
emitter.emit(“sayHello”, “Vipul”);

Output:

Hello, Vipul!

⭐ 5. Using once() for one-time events

once() runs the listener only one time.

emitter.once("start", () => {
console.log("This runs only once!");
});
emitter.emit(“start”);
emitter.emit(“start”); // will NOT run again


⭐ 6. Remove an Event Listener

Remove a specific listener:

function greet() {
console.log("Hello!");
}
emitter.on(“greet”, greet);

// Remove listener
emitter.removeListener(“greet”, greet);

Remove ALL listeners of an event:

emitter.removeAllListeners("greet");

⭐ 7. EventEmitter with Classes (Common Use)

const EventEmitter = require("events");

class Logger extends EventEmitter {
log(message) {
console.log(message);
this.emit(“messageLogged”, { id: 1, msg: message });
}
}

const logger = new Logger();

logger.on(“messageLogged”, (data) => {
console.log(“Listener called:”, data);
});

logger.log(“Node.js Event Example”);


⭐ 8. Events Used in Real Node.js

Server events

server.on("request", (req, res) => {})

Stream events

data, end, error

File system watcher events

change, rename

Websocket events

connection, message

Custom application events
(Logging, notifications, schedulers)


🎯 Summary

Method Description
on() Add event listener
once() Listener runs only once
emit() Trigger/emit an event
removeListener() Remove specific listener
removeAllListeners() Remove all listeners

You may also like...