Debugando uma aplicação Node.js
Debugar é tão importante quanto codificar. Muita vezes, é até uma tarefa mais demorada do que o próprio desenvolvimento. Se nenhuma ferramenta que facilite esse trabalho for utilizada, o processo de debug pode ser doloroso e traumatizante.
Muitos desenvolvedores Node.js debugam o seu código backend da seguinte forma:
console.log('Var 1:' + var1);
...
console.log('Aqui deu erro');
...
console.log('Entrou aqui!');
É muito comum encontrar no código de produção esses logs de teste, visto que o desenvolvedor adicionará inúmeros para tentar validar um comportamento ou identificar um erro.
Mas fique tranquilo, existe uma forma melhor! E para isso vamos utilizar a ferramenta de Debug do Visual Studio Code. Nesse post vamos configurar o Debug num projeto Node.js para inspecionar o retorno de um serviço REST.
💡 Você sabe de onde veio o termo bug e o que ele é? Veja esse artigo.
Pré requisitos
É importante que o leitor tenha experiência com o Node.js na construção de serviços. Também é necessário baixar esse projeto para utilizarmos no processo de debug.
Habilitando o debug
Abra o projeto no Visual Studio Code:
Veja que existe um menu lateral com um inseto (bug). Clique nele para configurar a depuração:
O Visual Studio Code precisa de uma arquivo de configuração para configurar o debug. Para isso, clique na engrenagem para “Configurar ou corrigir launch.json”:
É necessário informar o ambiente de debug. No nosso caso, vamos selecionar o Node.js:
Será criado um arquivo launch.json que configura os parâmetros de debug para o projeto. Vamos manter o arquivo com as opções mais básicas, que já foram geradas por padrão. Só precisamos corrigir o parâmetro program, pois o nosso programa é iniciado com o arquivo server.js:
Volte ao menu do debug e pressione o botão verde Iniciar Depuração:
Debugando o projeto
Com o debug executando, vamos utilizá-lo para inspecionar os dados retornados pelo serviço de criação de usuário. Para isso, abra o arquivo create.js e adicione um breakpoint passando o mouse ao lado dos números de linha do arquivo e clicando com o botão esquerdo para visualizar um marcador vermelho:
Agora só precisamos chamar o serviço para executar essa função. Vou utilizar aqui o curl no terminal, por questões de simplicidade:
$ curl -XPOST -H 'Content-Type: application/json' http://localhost:9999/api/usuario -d '{"nome":"Phoebe Buffay"}' -vNote: Unnecessary use of -X or --request, POST is already inferred.
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 9999 (#0)
> POST /api/usuario HTTP/1.1
> Host: localhost:9999
> User-Agent: curl/7.58.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 24
>
* upload completely sent off: 24 out of 24 bytes
O Visual Studio Code vai aparecer para você exatamente no breakpoint que você selecionou:
Se você passar o mouse em cima das variáveis, será possível inspecionar os seus valores atuais:
Você pode executar passo a passo o código utilizando as setas azuis de navegação no topo da tela:
Você também pode selecionar uma expressão e executá-la clicando com o botão direito do mouse, menu Depurar: Avaliar:
Conclusão
Esse post demonstrou de forma simples como configurar e utilizar a ferramenta de debug do Visual Studio Code para depurar programas Node.js no seu dia a dia.
É interessante que você explore as outras features dessa ferramenta até se sentir confortável com ela. Você vai perceber como o seu debug de projetos Node.js será mais eficiente.
Se você gosta do meu conteúdo, não deixe de conferir o meu canal do Youtube, onde falo sobre desenvolvimento de software. Espero te ver por lá! 😉