Eventos Customizados em Node.js: Arquitetura Desacoplada com EventEmitter

Eventos Customizados em Node.js: Arquitetura Desacoplada com EventEmitter

O módulo nativo events do Node.js permite aplicar o padrão de projeto Observer para disparar e escutar eventos de forma assíncrona. Essa abordagem resolve o acoplamento excessivo no código, permitindo que diferentes partes da aplicação reajam a ações específicas sem dependerem diretamente umas das outras.

JavaScript

const EventEmitter = require('events');

// Instancia o emissor de eventos nativo do Node.js
const emissorDeEventos = new EventEmitter();

/**
 * Registra um ouvinte para o evento customizado 'pedidoCriado'
 */
emissorDeEventos.on('pedidoCriado', (detalhesPedido) => {
  console.log(`[Email] Enviando confirmação para o pedido #${detalhesPedido.id}...`);
});

/**
 * Registra outro ouvinte para o mesmo evento (execução paralela/independente)
 */
emissorDeEventos.on('pedidoCriado', (detalhesPedido) => {
  console.log(`[Estoque] Atualizando saldo dos itens do pedido #${detalhesPedido.id}...`);
});

// --- Exemplo Prático de Uso ---
const novoPedido = { id: 4092, valor: 250.00 };

console.log('Iniciando processamento do pedido...');

// Dispara o evento 'pedidoCriado' repassando os dados do pedido
emissorDeEventos.emit('pedidoCriado', novoPedido);

Pontos-chave

  • Módulo Nativo sem Dependências: O events faz parte do core do Node.js, dispensando a instalação de bibliotecas de terceiros para comunicação via pub/sub interno.
  • Ordem de Execução Síncrona: Por padrão, os ouvintes registrados com .on() são chamados de forma síncrona na ordem em que foram declarados dentro do ciclo do evento.
  • Escuta Única com .once(): Para eventos que devem ser disparados apenas uma única vez (ex: inicialização de banco de dados), utilize o método .once() em vez de .on().
  • Gerenciamento de Memory Leaks: Por padrão, o Node.js exibe um aviso se mais de 10 ouvintes forem adicionados ao mesmo evento; este limite pode ser alterado via .setMaxListeners(n) caso necessário.

Thales de Oliveira Gomes

Thales de Oliveira Gomes é gestor de Tecnologia da Informação, especialista em infraestrutura de redes, computação em nuvem e operações de TI hospitalar, com mais de 18 anos de experiência na área. Graduado em Gestão de TI e pós-graduado em Engenharia de Redes e Telecomunicações, Cloud Computing, Redes de Computadores e Gestão Hospitalar, construiu uma trajetória sólida liderando projetos de alta complexidade, como a implementação e migração para nuvem de sistemas ERP de grande porte. Sua atuação no setor o levou a ser indicado ao prêmio IT Leaders Brasil na categoria Rising Leaders. Além da carreira corporativa e da paixão por tecnologia, Thales é autor independente com mais de 70 obras publicadas sobre redes, segurança da informação, Linux e física, além de criador de conteúdo no blog Vetor Tech e na plataforma CiberDicas. No universo das artes e do entretenimento, atua como produtor de música eletrônica sob o projeto Yknex, cria ilustrações digitais e compartilha walkthroughs de games no YouTube.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *