"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Depurando aplicativos Node.js: dicas e truques

Depurando aplicativos Node.js: dicas e truques

Publicado em 30/07/2024
Navegar:517

Debugging Node.js Applications: Tips and Tricks

Como desenvolvedor Node.js, você provavelmente já se deparou com a frustração de rastrear bugs indescritíveis em seus aplicativos. A depuração é uma habilidade essencial que pode economizar horas de trabalho e ajudá-lo a escrever um código mais robusto. Nesta postagem, exploraremos algumas técnicas e ferramentas poderosas para depuração de aplicativos Node.js.

1. Console.log(): a abordagem clássica

Vamos começar com a ferramenta de depuração mais básica, mas muitas vezes subestimada: console.log(). Embora possa parecer primitivo, o uso estratégico de console.log() pode ser surpreendentemente eficaz.

function calculateTotal(items) {
  console.log('Items received:', items);
  let total = 0;
  for (let item of items) {
    console.log('Processing item:', item);
    total  = item.price;
  }
  console.log('Total calculated:', total);
  return total;
}

Dica profissional: use console.table() para uma visão mais estruturada de arrays e objetos:

console.table(items);

2. Depurador Node.js: a solução integrada

Node.js vem com um depurador integrado que você pode usar executando seu script com o sinalizador de inspeção:

node inspect app.js

Você pode então usar comandos como cont, next, step e watch para navegar pelo seu código. Embora poderoso, esse método pode ser um pouco complicado para aplicativos complexos.

3. Código do Visual Studio: o amigo do desenvolvedor

O VS Code oferece excelentes recursos de depuração para Node.js. Veja como configurá-lo:

  1. Crie um arquivo .vscode/launch.json em seu projeto.
  2. Adicione a seguinte configuração:
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Node.js Program",
      "program": "${workspaceFolder}/app.js"
    }
  ]
}

Agora você pode definir pontos de interrupção em seu código e começar a depurar com F5.

4. Chrome DevTools: o poder do navegador

Você pode usar o Chrome DevTools para depurar aplicativos Node.js:

  1. Execute seu aplicativo com a sinalização --inspect:
   node --inspect app.js
  1. Abra o Chrome e navegue até chrome://inspect.
  2. Clique em "Abrir DevTools dedicados para Node".

Este método dá acesso a todo o poder das ferramentas de depuração do Chrome.

5. Módulo de depuração: o registrador seletivo

O módulo de depuração permite adicionar saída de depuração seletiva ao seu aplicativo:

const debug = require('debug')('myapp:server');

debug('Server starting on port 3000');

Para ativar esses logs, defina a variável de ambiente DEBUG:

DEBUG=myapp:server node app.js

6. Tratamento de erros: evite falhas silenciosas

O tratamento adequado de erros pode economizar muito tempo de depuração:

process.on('unhandledRejection', (reason, promise) => {
  console.log('Unhandled Rejection at:', promise, 'reason:', reason);
  // Application specific logging, throwing an error, or other logic here
});

7. Async/Await: simplifique a depuração assíncrona

Usar async/await pode tornar seu código assíncrono mais fácil de depurar:

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log('Data received:', data);
    return data;
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

8. Node.js Profiler: identifique gargalos de desempenho

Para depuração de desempenho, use o criador de perfil integrado:

node --prof app.js

Isso gera um arquivo de log que você pode analisar com:

node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt

9. Vazamentos de memória: Heapdump para o resgate

Se você suspeitar de um vazamento de memória, você pode usar o módulo heapdump:

const heapdump = require('heapdump');

// Somewhere in your code
heapdump.writeSnapshot((err, filename) => {
  console.log('Heap dump written to', filename);
});

Você pode então analisar o heap dump usando o Chrome DevTools.

Conclusão

A depuração é tanto uma arte quanto uma ciência. Essas ferramentas e técnicas devem fornecer uma base sólida para lidar até mesmo com os bugs mais complicados em seus aplicativos Node.js. Lembre-se de que a chave para uma depuração eficaz geralmente é uma combinação das ferramentas certas, uma abordagem sistemática e, às vezes, um novo par de olhos.

Quais são suas técnicas de depuração preferidas para Node.js? Compartilhe suas dicas e experiências nos comentários abaixo!

Boa depuração!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/rajasekhar_bemireddy_cb8/debugging-nodejs-applications-tips-and-tricks-2ifc?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3