How to Emit Event in Node.js: Simple Guide with Examples
In Node.js, you emit an event using the
emit method of an EventEmitter instance. First, create an event emitter object, then call emit('eventName', data) to trigger the event and pass optional data to listeners.Syntax
The emit method is used on an EventEmitter instance to trigger an event. It takes the event name as the first argument and optional additional arguments as event data.
- eventName: A string representing the event to emit.
- args: Optional data passed to event listeners.
javascript
emitter.emit(eventName[, ...args])
Example
This example shows how to create an event emitter, listen for an event named greet, and emit it with a message.
javascript
import { EventEmitter } from 'events'; const emitter = new EventEmitter(); // Listen for 'greet' event emitter.on('greet', (message) => { console.log('Received greeting:', message); }); // Emit 'greet' event with a message emitter.emit('greet', 'Hello, Node.js!');
Output
Received greeting: Hello, Node.js!
Common Pitfalls
Common mistakes when emitting events include:
- Not creating or importing an
EventEmitterinstance before callingemit. - Emitting events before listeners are attached, causing listeners to miss events.
- Using wrong event names (typos) which cause listeners not to respond.
Always attach listeners before emitting events to ensure they catch the event.
javascript
import { EventEmitter } from 'events'; const emitter = new EventEmitter(); // Wrong: Emitting before listener is attached emitter.emit('start'); emitter.on('start', () => { console.log('Started'); }); // Right: Attach listener before emitting emitter.on('ready', () => { console.log('Ready event caught'); }); emitter.emit('ready');
Output
Ready event caught
Quick Reference
Remember these key points when emitting events in Node.js:
- Use
EventEmitterfrom theeventsmodule. - Attach listeners with
onoroncebefore emitting. - Call
emitwith the event name and optional data. - Event names are case-sensitive strings.
Key Takeaways
Use the EventEmitter class's emit method to trigger events in Node.js.
Always attach event listeners before emitting events to ensure they catch them.
Event names are strings and must match exactly between emit and listener.
You can pass any number of arguments with emit to send data to listeners.
Import EventEmitter from 'events' module to create event emitters.