Criei o aplicativo expressjs usando os seguintes comandos:
express -e folderName
npm install ejs --save
npm install
Quando executo o aplicativo com node app.js
:, tenho os seguintes erros:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Como corrigi-lo?
Respostas:
Você executou outro servidor usando a mesma porta como 8080.
Talvez você tenha executado
node app
em outro shell, feche-o e execute novamente.Você pode verificar PORT no. está disponível ou não está usando
Como alternativa, você pode usar lsof :
fonte
rails server
...: |Nós recebemos um erro semelhante quando executamos nosso aplicativo expresso. Temos que seguir o mesmo nesse caso. Precisamos verificar se está funcionando em algum terminal. Se você deseja localizar e interromper o processo, siga estas etapas:
OU
Use um único comando para fechar todos os processos do nó em execução.
fonte
ps aux | grep node | awk '{print $2}' | xargs kill -9
killall -r node
(linux)Uma instância provavelmente ainda está em execução. Isso vai consertar.
Atualização: Este comando só funciona no Linux / Ubuntu e Mac.
fonte
Se você estiver no Linux, esse problema também pode ocorrer se o Nodejs não estiver sendo executado como root.
Mude a partir disso:
Para isso:
Aconteceu comigo e nenhuma das outras sugestões aqui o corrigiu. Felizmente, lembrei-me de que o script estava funcionando outro dia quando rodava como root. Espero que isso ajude alguém!
Isenção de responsabilidade: Essa provavelmente não é a melhor solução para um ambiente de produção. Iniciar o serviço como root pode introduzir algumas falhas de segurança no seu servidor / aplicativo. No meu caso, essa era uma solução para um serviço local, mas eu encorajaria outras pessoas a gastar mais tempo tentando isolar a causa.
fonte
Isso ocorre porque a porta que você está usando para executar o script já está em uso. Você precisa parar todos os outros nós que estão usando essa postagem. para isso, você pode verificar todos os nós
OU apenas para o processo do nó usar
ps -ef | grep node
Isso fornecerá a lista de todos os processos do nó com o IDmatar todo processo de nó
Ou para o ID específico
sudo kill -9 id
fonte
Corrigi o bug alterando a porta que estava
e alterado para:
fonte
A porta que o Node está tentando usar já pode ser usada por outro programa. No meu caso, foi o ntop , que eu havia instalado recentemente. Eu tive que abrir http: // localhost: 3000 / em um navegador para realizá-lo. Outra maneira de encontrar o processo é dada aqui .
fonte
Se você deseja usar o mesmo número de porta, digite
kill %
o terminal, que encerra o processo em segundo plano atual e libera a porta para uso posterior.fonte
isso significa que seu arquivo está sendo executado agora. basta digitar o código abaixo e tente novamente:
fonte
Feche qualquer outro servidor de nó em execução, mesmo que esteja em outras janelas do terminal ou em portas diferentes. Isso deve resolver o problema.
fonte
Se você tentou matar todas as instâncias de nó e outros serviços que atendiam ao 3000 (o padrão usado pela configuração do esqueleto expresso) sem sucesso, verifique se o seu ambiente não está definindo 'porta' como algo inesperado. Caso contrário, você provavelmente receberá o mesmo erro. No arquivo app.js do esqueleto expresso, você notará a linha 15:
fonte
Para corrigir isso, encerre ou feche o servidor que você está executando. Se você estiver usando o Eclipse IDE, siga isto,
Executar> Depurar
Clique com o botão direito do mouse no processo em execução e clique em Terminar .
fonte
events.js: 183 lançados; // Evento 'error' não tratado
Eu também tive o mesmo tipo de problema e tentei de várias maneiras, mas finalmente consegui isso, isso funciona bem:
Consulte este link para obter mais esclarecimentos https://github.com/ionic-team/ionic-cli/issues/2922
fonte
Na verdade, as teclas Ctrl + C não liberam a porta usada pelo processo do nó. Portanto, existe este erro. A solução para o problema estava usando o seguinte snippet de código no server.js:
Isso funcionou para mim.
Você também pode procurar outras soluções mencionadas em Encerramento gracioso no NodeJS
fonte
Razão para este erro
Solução simples e rápida
No sistema operacional Linux, por exemplo, você especificou 3000 como a porta
lsof -i :3000
. Se algum processo já estiver em execução na porta 3000, você verá esta impressão no consoleCopie o PID (ID do processo) da saída
Executar
sudo kill -9 16615
(você deve colocar o PID após -9)fonte
No meu caso, eu tive que correr
vagrant reload
também. Mesmo sem processos de nó executando meu aplicativo expresso na minha máquina virtual, eu ainda estava recebendo esse erro até recarregar a caixa de vagabundo.fonte
Pare o serviço que está usando essa porta.
fonte
No meu caso, o problema foi causado pelo esquecimento de chamar
next()
uma chamada de método expressjs `use '.http://expressjs.com/guide/using-middleware.html
fonte
Isso funcionou para mim.
http://www.codingdefined.com/2015/09/how-to-solve-nodejs-error-listen.html
Basta alterar o número da porta nas propriedades do projeto.
fonte
Você também pode alterar a porta do Gruntfile.js e executar novamente.
fonte
Depois de matar o mesmo processo várias vezes e não conseguir localizar o que mais estava sendo executado na porta 8000, percebi que estava tentando executar na porta 8000 duas vezes:
Antes:
Depois de:
fonte
Eu tive o mesmo problema e descobri que um processo nodejs que eu havia cancelado anteriormente com CTRL + C ainda estava em execução. O problema no Windows 10 é que Ctrl + C não mata graciosamente nodejs. Abri o gerenciador de tarefas e matei o processo manualmente. As soluções fornecidas no GitHub não funcionaram para mim.
fonte
Se você estiver usando o Windows, poderá finalizar o processo no gerenciador de tarefas do node.js
fonte
Nenhuma das respostas funcionou para mim.
Quando reiniciei o computador, pude colocar o servidor em funcionamento.
Mac
shutdown now -r
Linux
sudo shutdown now -r
fonte
-> verifique o que está sendo executado na porta 8080 ou qual porta você deseja verificar
se algo estiver rodando, você pode fechá-lo ou usar algum comando kill para fechá-lo
fonte
Simples, basta verificar seu teminal no Visual Studio Code. Como eu estava executando meu aplicativo de nó e hibernava meu laptop, na manhã seguinte ligo meu laptop de volta ao desenvolvimento de software. ENTÃO, eu executo o comando novamente nodemon app.js O primeiro foi executado a partir da noite e o segundo estava executando o meu comando mais recente, de modo que dois prompts de comando estão ouvindo as mesmas portas e é por isso que você está recebendo esse problema. Simples Feche um termianl ou todos os terminais e execute o nó app.js ou nodemon app.js
fonte
A porta que você está ouvindo já está sendo ouvida por outro processo.
Quando enfrentei esse erro, interrompi o processo usando o Windows PowerShell (porque usei o Windows)
ps
e então você pode obter uma lista de processosStop-process <Id>
eu acho que é ajuda para usuários do windowsfonte
Encontrei o mesmo problema hoje e a porta não foi usada. A seguinte abordagem ajudou:
fonte
Se estiver no mac, é tudo sobre o IP do x86_64-apple-darwin13.4.0. Se você seguir os erros, isso será algo relacionado ao x86_64-apple-darwin13.4.0. Adicionar
127.0.0.1 x86_64-apple-darwin13.4.0
para o arquivo / etc / hosts . Então o problema se foi
fonte
Basta alterar sua porta, pode ser que sua porta atual esteja sendo usada pelo iis ou por outro servidor.
fonte