// Laboratório 5 (opcional): registra no terminal da API cada requisição que // chega, sem mudar uma linha da API. Carregado pelo Node antes da aplicação: // // NODE_OPTIONS="--require /caminho/para/contar-requisicoes.cjs" npm run start:dev // // Funciona substituindo o `emit` de http.Server: todo evento "request" passa // por aqui antes de chegar ao Express. Só para laboratório. const http = require('node:http'); const emitOriginal = http.Server.prototype.emit; let total = 0; http.Server.prototype.emit = function (evento, requisicao, ...resto) { if (evento === 'request') { total += 1; const agente = String(requisicao.headers['user-agent'] ?? '-').split(' ')[0]; console.log(`[requisição ${total}] ${requisicao.method} ${requisicao.url} · ${agente}`); } return emitOriginal.call(this, evento, requisicao, ...resto); };