Node.js › Core Node.js Modules

What does the node:events module's EventEmitter class provide, and what naming convention do most Node.js core APIs follow when using it?

Beginner

Answer

EventEmitter enables the publish/subscribe pattern -- objects extending it emit named events via .emit(), subscribed via .on() or .once(). Core APIs built on streams and servers follow lowercase, camelCase event names like 'data', 'error', 'close', a convention userland libraries typically follow too.
const emitter = new EventEmitter();
emitter.once('ready', () => console.log('Ready fired once'));
emitter.emit('ready');
Real-world example A job-processing library built on EventEmitter emits 'started', 'progress', and 'completed' events, following familiar conventions that make the API immediately intuitive to Node.js developers.

Common follow-ups: What happens if an EventEmitter emits an 'error' event with no listener attached?;How does EventEmitter's default max-listener limit (10) work, and when would you raise it?