Debugging NodeJS apps

Formas de debuggear aplicaciones creadas con NodeJS, en VSCode y Jetbrains

En este caso, todo lo hacemos sobre docker, para debuggear porjectos Strapi. Pero es igual para el resto de projectos node, pero cambiando pequeñas cosas.

Es necesario exponer el puerto 9229

# VSCode

Para VSCode necesitamos configurar el archivo launch.json para configurar donde y como acceder al contenedor Docker. Hay que referenciar donde se encuentra el código tanto en local como en el contenedor.

{
    // Use IntelliSense para saber los atributos posibles.
    // Mantenga el puntero para ver las descripciones de los existentes atributos.
    // Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Vigilancia",
            "type": "node",
            "request": "attach",
            "restart": true,
            "port": 9229,
            "address": "server.ddev.site",
            "localRoot": "${workspaceFolder}/server/",
            "remoteRoot": "/home/node/app/",
            "protocol": "inspector",
            "skipFiles": ["<node_internals>/**"]
        },
    ]
}

Por otro lado tenemos que lanzar el proyecto con el parámetro inspect.




 


{
    "develop": "strapi develop",
    "start": "strapi start",
    "debug": "node --inspect=0.0.0.0:9229 ./node_modules/strapi/bin/strapi.js start"
}

Ya podemos poner puntos de interrupción y lanzar el debug

# JetBrains

Aunque en jetbrains se puede configurar el debug para que se lanze automático, a nosotros nos interesa debuggear utilizando herramientas como DDEV y Docker, por lo tanto complica un poco las cosas.

Acercandose a la forma de VSCode, solo necesitamos el comando del package.json y el punto de interrupción.




 


{
    "develop": "strapi develop",
    "start": "strapi start",
    "debug": "node --inspect=0.0.0.0:9229 ./node_modules/strapi/bin/strapi.js start"
}

# Importante

Al lanzar el comando npm run debug o yarn debug, tenemos el siguiente resultado.

Debugger listening on ws://0.0.0.0:9229/b50b6d80-e59d-4b7e-a2a8-e27bf55b5dfc
For help, see: https://nodejs.org/en/docs/inspector

Después de esto solo tenemos que clickar en el enlace ws://0.0.0.0:9229b50b6d80-e59d-4b7e-a2a8-e27bf55b5dfc y poner los puntos de interrupción en el código.

Iniciar aplicación node con git en el servidor

Iniciar aplicación node con git en el servidor

Cuando queremos iniciar un proyecto node en producción, necesitamos poder clonar el repositorio en el server. En este ejemplo usaremos Gitlab como plataforma de repositorios de control de versiones

Filtrar DrupalChat por classroom en las plataformas

Filtrar DrupalChat por classroom en las plataformas