Pergunta

Como faço para depurar um aplicativo de servidor Node.js?

Agora eu estou na sua maioria usando alerta de depuração com instruções de impressão como este:

sys.puts(sys.inspect(someVariable));

Deve haver uma maneira melhor de depuração. Eu sei que Google Chrome tem um depurador de linha de comando. É este o depurador disponível para Node.js também?

Foi útil?

Solução 3

O V8 depurador lançado como parte do Google Ferramentas para desenvolvedores Chrome pode ser usado para depurar scripts do Node.js. A explicação detalhada de como funciona este pode ser encontrada no Node js GitHub wiki .

Outras dicas

nó-inspetor poderia salvar o dia! Usá-lo a partir de qualquer browser que suporte WebSocket . Pontos de interrupção, profiler, livecoding, etc ... É realmente incrível.

Instale-o com:

npm install -g node-inspector

Em seguida, execute:

node-debug app.js

nó tem seu próprio rel="noreferrer"> a partir da versão 6.3 (usando DevTools do Chrome )

 Nodes embutido GUI depurador

Simplesmente passar o sinalizador inspector e você será fornecido com uma URL para o inspector:

node --inspect server.js

Você também pode quebrar na primeira linha, passando --inspect-brk vez.

Para abrir uma janela Chrome automaticamente, use o href="https://github.com/jaridmargolin/inspect-process" rel="noreferrer"> módulo

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js

Visual Código Estúdio será a minha escolha para depuração. Sem sobrecarga de instalar quaisquer ferramentas ou material npm install. Basta definir o ponto de seu aplicativo no package.json começando e VSCode criará automaticamente um arquivo de configuração dentro de sua solução. Ele foi construido sob Electron , em que editores como Atom são construídas.

Código VS dá experiência de depuração semelhante ao que você pode ter tinha em outros IDEs como VS, Eclipse, etc.

 enter descrição da imagem aqui enter descrição da imagem aqui

Eu pessoalmente uso JetBrains WebStorm como é a única JavaScript IDE que eu encontrei o que é ótimo tanto para frontend e backend JavaScript.

Ele funciona em vários sistemas operacionais e tem Node.js depuração built-in (bem como uma tonelada de outras coisas] ( http://www.jetbrains.com/webstorm/features/index.html ).

As minhas apenas 'problemas' / item na lista são foram :

  1. Parece ser mais recurso com fome no Mac do que o Windows Já não parece um problema na versão 6.
  2. Seria bom se tivesse o apoio de trechos (como os de Sublime Text 2 - ou seja, tipo 'diversão' e toque 'guia' para colocar em uma função Ver @WickyNilliams comentário abaixo -.. com o Live Templates você também tem trecho de suporte

Teseu é um projeto de Adobe pesquisa que permite que você depurar seu código Node.js em sua Open Source editor Suportes . Ele tem algumas características interessantes como a cobertura de código em tempo real, inspeção retroativa, árvore chamada assíncrona.

Captura de tela

Um monte de grandes respostas aqui, mas eu gostaria de adicionar o meu ponto de vista (com base em como a minha abordagem evoluiu)

Debug Logs

Vamos enfrentá-lo, que todos nós amamos uma boa console.log('Uh oh, if you reached here, you better run.') e às vezes isso funciona muito bem, então se você está reticente a se mover muito longe de pelo menos adicionar alguns bling a seus registros com o Visionmedia depuração .

Interativo depuração

Como calhar como o registro do console pode ser, para depurar profissionalmente você precisa arregaçar as mangas e entrar em preso. Pontos de interrupção definidos, passo através de seu código, inspecionar escopos e variáveis ??para ver o que está causando esse comportamento estranho. Como já foi mencionado, nó-inspetor é realmente as abelhas-joelhos. Ele faz tudo o que você pode fazer com o que o familiar interface do Chrome DevTools built-in depurador, mas usando. Se, como eu, você usa WebStorm , em seguida, aqui é um guia prático para a depuração de lá.

Stack Traces

Por padrão, não podemos traçar uma série de operações em diferentes ciclos do ciclo de eventos (carrapatos). Para contornar esta situação tem uma olhada Longjohn (mas não na produção!).

vazamentos de memória

Com Node.js podemos ter um processo de servidor deverá ficar-se de um tempo considerável. O que você faz se você acha que tem surgido alguns vazamentos desagradáveis? Use heapdump e DevTools Chrome para comparar alguns instantâneos e ver o que está mudando.


Para alguns artigos úteis, veja

Se você sentir vontade de assistir a um vídeo (s), então

Seja qual for o caminho que você escolher, apenas certifique-se entender como você está depurando

 enter descrição da imagem aqui

É uma coisa dolorosa
Olhar para o seu próprio problema e saber
Que você mesmo e mais ninguém tornou

Sófocles, Ajax

Node.js Tools para Visual Studio 2012 ou 2013 inclui um depurador. A visão geral estados aqui "Ferramentas Node.js para Visual Studio inclui suporte completo para depurar aplicativos de nós.". Sendo novo para Node.js, mas com experiência em .NET, eu encontrei este add-in para ser uma ótima maneira de aplicações Node.js depuração.

Visual Código Estúdio tem muito bom suporte a depuração Node.js. É gratuito, de código aberto e multi-plataforma e roda em Linux, OS X e Windows.

Você pode até mesmo tarefas de depuração grunhido e gole , se você precisar ...

Eu escrevi uma abordagem diferente para depuração de código Node.js que é estável e é extremamente simples. Ele está disponível em https://github.com/sa/iron-node .

Digite os detalhes da imagem aqui

Uma opensource cross-platform depurador visual.

Instalação:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

Se você estiver usando o href="https://atom.io/packages/node-debugger" rel="noreferrer"> Atom IDE , você pode instalar o pacote node-debugger

Usando o Chrome versão 67.0.3396.62 (+)

  1. Executar nó aplicativo

nó --inspect-BRK = 0.0.0.0: 9229 server.js (servidor js filename)

  1. Procure a sua aplicação em cromo por exemplo "Localhost: porta"
  2. DevTools Abertas.
  3. Clique no ícone o nó ao lado do ícone do dispositivo de resposta.

 enter descrição da imagem aqui

Haverá outra janela DevTools que vai sair especificamente para depuração de aplicativo nó.

 enter descrição da imagem aqui

Eu criei uma ferramenta pequena pura chamada pry.js que podem ajudá-lo.

Coloque um simples em algum lugar declaração no seu código, executar o script normalmente e nó irá parar a thread atual dando-lhe acesso a todas as suas variáveis ??e funções. Ver / editar / apagar-los à vontade!

pry = require('pryjs')

class FizzBuzz

  run: ->
    for i in [1..100]
      output = ''
      eval(pry.it) # magic
      output += "Fizz" if i % 3 is 0
      output += "Buzz" if i % 5 is 0
      console.log output || i

  bar: ->
    10

fizz = new FizzBuzz()
fizz.run()

Não é built-in de linha de comando depurador cliente dentro Node.js. Cloud 9 IDE têm também bastante agradável (visual) depurador .

Visual Código Estúdio trabalho vontade para nós na depuração.

Eu coloquei um short Node.js depuração cartilha sobre como usar o < a href = "https://github.com/node-inspector/node-inspector" rel = "nofollow noreferrer"> nó-inspector para aqueles que não tem certeza por onde começar.

Use WebStorm! É perfeito para depurar aplicações Node.js. Tem um built-in depurador. Confira os docs aqui: https: // www .jetbrains.com / help / WebStorm / 2016,1 / corrida-e-depuração-node-js.html

Se você precisar de uma biblioteca logging poderosa para Node.js, Tracer https://github.com/baryon/tracer é uma escolha melhor.

Ele produz mensagens de log com um timestamp, nome do arquivo, nome do método, número da linha, caminho ou chamada pilha, consola de cor suporte e banco de dados de suporte, arquivo, transporte fluxo facilmente. Eu sou o autor.

Supondo que você tenha nó-inspetor instalado no seu computador (se não, basta digitar 'npm instalar -g nó-inspector'), você só tem que executar:

node-inspector & node --debug-brk scriptFileName.js

E colar o URI a partir da linha de comando em uma WebKit (Chrome / Safari) browser.

Comece o seu processo de nó com -. Inspecionar bandeira

node --inspect index.js

e abra chrome://inspect em cromo. Clique no botão "DevTools dedicados Abertas para o Nó" link ou instalar este chrome extensão para abrir facilmente DevTools cromados.

Para mais informações consulte este link

Existem muitas possibilidades ...

Suporte Debug é frequentemente implementada usando o href="https://github.com/v8/v8/wiki/Debugging-Protocol" rel="noreferrer"> v8 Protocolo ou o mais recente < a href = "https://developer.chrome.com/devtools/docs/debugger-protocol" rel = "noreferrer"> Chrome depuração Protocolo .

Há o novo código-fonte aberto Nodeclipse projeto (como um plugin do Eclipse ou Enide Estúdio ):

Nodeclipse se tornou # 1 em Eclipse Top 10 novos plugins para 2013 . Ele usa um V8 depurador modificado (a partir do Google Chrome Developer Tools para Java).

Nodeclipse é um software livre de código aberto lançado no início de cada mês .

IntelliJ funciona maravilhosamente para Node.js.

Além disso, 'Código de Assistência' IntelliJ suportes bem.

O apoio Node.js NetBeans IDE teve desde versão 8.1 :

<...>

Novos Destaques dos recursos

Node.js Desenvolvimento de Aplicações

  • Novo Projeto Node.js assistente
  • New Node.js Expresso assistente
  • avançado JavaScript Editor
  • O novo suporte para a execução de aplicativos Node.js
  • O novo suporte para depuração de aplicativos Node.js.

<...>

Referências adicionais:

  1. NetBeans Wiki / NewAndNoteworthyNB81 .
  2. Node.js Expresso App no ??NetBeans IDE, Geertjan Oracle .

Use este comandos

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect

Uma maneira rápida e suja para depurar scripts pequenos Node.js com o seu favorito navegador depurador seria a utilização de browserify . Note-se que esta abordagem não funciona com todas as aplicações que exigem bibliotecas de I / O nativas, mas é bom o suficiente para a maioria das pequenas scripts.

$ npm install -g browserify

Agora, mova todas as chamadas de seu var x = requires('x') em um arquivo requires.js e execute:

$ browserify requires.js -s window -o bundle.js

(A desvantagem aqui é que você tem que mover ou comentar o requires em todos os seus arquivos.)

Inclua o bundle.js em um arquivo HTML assim:

<script type="text/javascript" src="bundle.js"></script>

Agora carregar o arquivo no seu navegador e pressione F12 e viola:. Depuração no navegador

NDB é uma experiência de depuração melhorado para Node.js, habilitado pelo Chrome DevTools

https://github.com/GoogleChromeLabs/ndb

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top