"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Depuración de aplicaciones Node.js: consejos y trucos

Depuración de aplicaciones Node.js: consejos y trucos

Publicado el 2024-07-30
Navegar:160

Debugging Node.js Applications: Tips and Tricks

Como desarrollador de Node.js, probablemente te hayas encontrado con la frustración de rastrear errores difíciles de detectar en tus aplicaciones. La depuración es una habilidad esencial que puede ahorrarle horas de dolor de cabeza y ayudarle a escribir código más sólido. En esta publicación, exploraremos algunas técnicas y herramientas poderosas para depurar aplicaciones Node.js.

1. Console.log(): el enfoque clásico

Comencemos con la herramienta de depuración más básica pero a menudo subestimada: console.log(). Si bien puede parecer primitivo, el uso estratégico de console.log() puede ser sorprendentemente efectivo.

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;
}

Consejo profesional: utilice console.table() para obtener una vista más estructurada de matrices y objetos:

console.table(items);

2. Depurador de Node.js: la solución integrada

Node.js viene con un depurador incorporado que puedes usar ejecutando tu script con el indicador de inspección:

node inspect app.js

Luego puedes usar comandos como cont, next, step y watch para navegar por tu código. Si bien es poderoso, este método puede resultar un poco engorroso para aplicaciones complejas.

3. Visual Studio Code: el amigo del desarrollador

VS Code ofrece excelentes capacidades de depuración para Node.js. Aquí se explica cómo configurarlo:

  1. Crea un archivo .vscode/launch.json en tu proyecto.
  2. Agregue la siguiente configuración:
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Node.js Program",
      "program": "${workspaceFolder}/app.js"
    }
  ]
}

Ahora puedes establecer puntos de interrupción en tu código y comenzar a depurar con F5.

4. Chrome DevTools: el poder del navegador

Puedes usar Chrome DevTools para depurar aplicaciones Node.js:

  1. Ejecuta tu aplicación con el indicador --inspect:
   node --inspect app.js
  1. Abre Chrome y navega hasta chrome://inspect.
  2. Haga clic en "Abrir DevTools dedicado para Node".

Este método te brinda acceso a todo el poder de las herramientas de depuración de Chrome.

5. Módulo de depuración: el registrador selectivo

El módulo de depuración le permite agregar resultados de depuración selectiva a su aplicación:

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

debug('Server starting on port 3000');

Para habilitar estos registros, configure la variable de entorno DEBUG:

DEBUG=myapp:server node app.js

6. Manejo de errores: evite fallas silenciosas

El manejo adecuado de errores puede ahorrarle mucho tiempo de depuración:

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 la depuración asincrónica

Usar async/await puede hacer que tu código asincrónico sea más 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: identificar cuellos de botella en el rendimiento

Para depurar el rendimiento, utilice el generador de perfiles integrado:

node --prof app.js

Esto genera un archivo de registro con el que puedes analizar:

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

9. Pérdidas de memoria: Heapdump al rescate

Si sospechas de una pérdida de memoria, puedes utilizar el módulo heapdump:

const heapdump = require('heapdump');

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

Luego puedes analizar el volcado del montón usando Chrome DevTools.

Conclusión

La depuración es tanto un arte como una ciencia. Estas herramientas y técnicas deberían brindarle una base sólida para abordar incluso los errores más desconcertantes en sus aplicaciones Node.js. Recuerde, la clave para una depuración eficaz suele ser una combinación de las herramientas adecuadas, un enfoque sistemático y, a veces, un par de ojos nuevos.

¿Cuáles son sus técnicas de depuración preferidas para Node.js? ¡Comparte tus consejos y experiencias en los comentarios a continuación!

¡Feliz depuración!

Declaración de liberación Este artículo se reproduce en: https://dev.to/rajasekhar_bemireddy_cb8/debugging-nodejs-applications-tips-and-tricks-2ifc?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3