Events and EventEmitter

Node.js uses event-driven programming heavily.

An event means:

Something happened, and interested code can react to it.

EventEmitter example

import EventEmitter from 'node:events'

const emitter = new EventEmitter()

emitter.on('user:created', (user) => {
  console.log('Send welcome email to', user.email)
})

emitter.emit('user:created', {
  email: 'asha@example.com',
})

on registers a listener.

emit triggers the event.

Why events are useful

Events help separate actions.

Example: when a user registers, your main code may create the user. Other listeners can:

The registration function does not need to know every side effect directly.

EventEmitter methods

Common methods:

Common mistake

Too many events can make code hard to trace.

Use events for clean decoupling, not to hide important business flow.

If one operation must happen before another, direct function calls may be clearer.

Interview answer

EventEmitter is Node's event system. It lets code register listeners with on and trigger them with emit. It is useful for event-driven flows like logging, notifications, and decoupled side effects, but overusing events can make code harder to follow.