Loading

Quipoin Menu

Learn • Practice • Grow

node-js / Events Module
interview

Q1. What is the Events module in Node.js?
The events module provides the EventEmitter class, which is the foundation for event-driven programming in Node.js. Many Node.js core modules (like http, fs, stream) inherit from EventEmitter. It allows objects to emit named events and register listeners that respond to those events. Include with:
const EventEmitter = require('events');

Q2. How do you create and use an EventEmitter?
Create a class that extends EventEmitter, or create an instance directly:
const myEmitter = new EventEmitter();
. Register listeners with .on(eventName, listener) or .addListener(). Emit events with .emit(eventName, ...args). Example:
myEmitter.on('greet', (name) => console.log(name)); myEmitter.emit('greet', 'John');

Q3. What are the key methods of EventEmitter?
Important methods: .on(event, listener) - register listener, .once(event, listener) - listener runs once, .emit(event, ...args) - emit event, .removeListener(event, listener) - remove specific listener, .removeAllListeners(event) - remove all listeners, .listeners(event) - get listeners array, and .eventNames() - get registered event names.

Q4. What is the default max listeners and how to change it?
By default, EventEmitter prints a warning if more than 10 listeners are added for a single event (to prevent memory leaks). You can change this with .setMaxListeners(n). To get the current limit, use .getMaxListeners(). For a specific event, you can also set the limit for that instance only.

Q5. How do error events work in EventEmitter?
When an error event is emitted and no listener is registered, EventEmitter throws an exception and potentially crashes the application. It's best practice to always register an error listener:
myEmitter.on('error', (err) => { console.error('Error:', err); });
. This allows graceful error handling.