Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.

Quando estamos usando Node.js com Express e o Nodemon para reiniciar automaticamente, às vezes encontramos um erro bem chato: listen EADDRINUSE. Esse erro indica que a porta que o seu servidor tenta usar já está ocupada.
---
Na prática, isso acontece quando o processo anterior não foi encerrado corretamente ou ficou preso, impedindo que o novo processo ocupe a mesma porta.
Para quem trabalha com reinícios frequentes, como testes rápidos ou mudanças constantes, esse erro dá uma dor de cabeça. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta.
Algumas soluções práticas:
lsof -i :5000 e matar com kill -9).nodemon --signal SIGINT para garantir que o processo seja encerrado corretamente.No seu fluxo de trabalho, vale a pena pensar em uma rotina que limpe processos antigos ou que gerencie melhor as portas em uso. Assim, evita esse problema recorrente e melhora sua produtividade. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco. Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar.
Quem aí já passou por isso e encontrou uma solução mais elegante? Quais estratégias funcionaram para vocês? Por isso, o recorte precisa considerar manutenção, validação e caminho de volta. Esse contexto ajuda a separar ganho real de novidade difícil de sustentar. A decisão fica mais saudável quando o time consegue medir o impacto depois. Sem esse critério, a solução pode parecer simples no começo e cara no suporte. O valor aparece melhor quando operação, produto e engenharia olham para o mesmo risco.
Eu faço um pequeno script em bash que roda antes do start do nodemon, pra cuidar para que a porta esteja livre.
Já passei por isso várias vezes. Aqui, o que ajuda bastante é criar um script que mata processos antigos na porta antes de iniciar o servidor. Assim, evita conflito direto. Você costuma fazer alguma rotina assim?
No meu time, a gente usa um script que verifica se a porta está ocupada e, se estiver, mata o processo antes de iniciar o servidor.