Este es un práctico tutorial de cómo depurar tus aplicaciones hechas en Node.js. Con esto aprenderás a hacer esta tarea por completo y de la mejor manera. Esta guía lo ayudará a comenzar a depurar tus aplicaciones y scriptsConcepto de Scripts¿Qué son los Scripts?Los Scripts son fragmentos de código que se usan para dar forma a herramientas tanto en Internet como en el sector de la informática en general. Son una parte crucial del software, puesto que se trata exactamente del código que conforma a una aplicación en su totalidad o a una de sus funciones, como además el que puedes hallar explorando cómo está hecha una web.Desde Suite Node.js. Continúa leyendo y entérate de mas.
Activer un inspecteur
Quand a commencé avec le commutateur --inspecter , un processus Node.js écoute via WebSockets les commandes de diagnostic définies par défaut par le protocole Inspector sur l'hôte et le port 127.0.0.1:9229. Chaque processus se voit également attribuer un UUID unique (par exemple 0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e).
Los clientes de Inspector deben conocer y especificar la dirección de host, el puerto y el UUID para conectarse a la interfaz de WebSocket. La URLEl URL (Localizador Uniforme de Recursos), es una dirección definida que apunta a la posición de un archivo en un servidor y lo recupera. Las URL se introducen en un navegador web para ingresar a documentos en la web o se incrustan como hipervínculos dentro de un documento. Se puede usar un Permalink para que una URL esté disponible de forma permanente. Componentes de una URL • prefijo de protocolo Suite Achevée ws://127.0.0.1:9229/0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e cela dépend bien sûr de l'hôte et du port réels et de l'UUID correct pour l'instance.
El Inspector también incluye un punto final HTTPEl HTTP (Hyper Text Transfer Protocol) es un protocolo que se usa para transmitir datos en redes. HTTP es un estándar técnico generalmente aceptado que establece cómo un cliente web se comunica con un servidor para que los datos solicitados por el cliente puedan ser cargados y mostrados. Información general Junto con el URL y el HTML, HTTP es uno de los conceptos más importantes de Internet (www). Fue desarrollado Suite para servir métadonnéesLos metadatos son datos estructurados que contienen información sobre una fuente como, por ejemplo, un libro o un documento web. Gracias a los metadatos resulta mucho más fácil hallar la fuente de información dado que contienen datos sobre el título, el autor, la fecha de publicación, la descripción, etc. Se utilizan en librerías pero además para la estadística y la ingeniería de software. Metadatos en WWW Los metadatos se utilizan Suite sobre el depurador, incluida su URL de WebSocket, UUID y la URL de Chrome DevTools. Obtén estos metadatos enviando una solicitud HTTP a http: // [hôte: port] / json / list. Cela renvoie un objet JSON comme celui-ci; utilisez la propriété webSocketDebuggerUrl comme URL pour vous connecter directement à l'inspecteur.
{"description": "instance node.js", "devtoolsFrontendUrl": "chrome-devtools: //devtools/bundled/inspector.html? experiences = true & v8only = true & ws = 127.0.0.1: 9229 / 0f2c936f-b1cd -4ac9-aab3 -f63b0f33d55e "," faviconUrl ":" https://nodejs.org/static/favicon.ico "," id ":" 0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e "," title ":" node "," type ":" node "," url ":" file: // "," webSocketDebuggerUrl ":" ws: //127.0.0.1: 9229 / 0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e "}
Vous pouvez également demander à un processus Node.js démarré sans –inspecter pour commencer à écouter les messages de débogage en le signalant avec SIGUSR1 (en Linux y OS X). A partir del Node 7, esto activa la APIConcepto de API¿Qué es una API?Una API, siglas de Application Programming Interface o Interfaz de Programación de Apps, es un recopilatorio de código que se puede emplear para que varias apps se comuniquen entre ellas. Es algo que realiza una tarea equivalente a la interfaz de usuario al momento de promover la interacción entre persona y programa, solo que aplicado única y exclusivamente dentro del entorno del software.Aún cuando suene Suite de depuración heredada; en el Node 8 y posterior activará la API Inspector.
La sécurité est impliquée
Étant donné que le débogueur a un accès complet au runtime Node.js, un acteur malveillant capable de se connecter à ce port peut exécuter du code arbitraire au nom du processus de nœud. Il est important de comprendre les implications de sécurité de l'exposition du port de débogage sur les réseaux publics et privés.
L'exposition publique du port de débogage n'est pas sûre
Si el depurador está vinculado a una adresse IPDirección de Protocolo de Internet, la dirección IP es una dirección de red que se puede asignar a un dispositivo en una red sólo una vez. Esto hace falta para que los paquetes de datos puedan direccionarse y entregarse correctamente. Una dirección IP es el identificador único de un PC que establece su ubicación en Internet. Muestra qué proveedor se está usando. La dirección IP de 32 bits (además llamada Suite pública, o 0.0.0.0, tout client pouvant accéder à votre adresse IP pourra se connecter au débogueur sans aucune restriction et pourra exécuter du code arbitraire.
Par défaut, le nœud –inspect est lié à 127.0.0.1. Vous devez explicitement fournir une adresse IP publique ou 0.0.0.0, etc., si vous souhaitez autoriser les connexions externes au débogueur. Cela peut vous exposer à une menace de sécurité potentiellement importante. Nous vous suggérons de sécuriser les pare-feu et les contrôles d'accès appropriés pour éviter une exposition à la sécurité.
Les applications locales ont un accès complet à l'inspecteur.
Même si vous liez le port de l'inspecteur à 127.0.0.1 (valeur par défaut), toute application exécutée localement sur votre PC aura un accès illimité. C'est par conception pour permettre aux débogueurs locaux de se connecter facilement.
NavigateursConcepto de Navegadores¿Qué son los Navegadores?Los Navegadores son herramientas informáticas que utilizamos para, normalmente, navegar por Internet y visitar cualquier página web, al mismo tiempo de para hacer otras tareas como ver documentos, observar vídeos o reproducir contenido multimedia de cualquier tipo. Son un tipo de software sencillamente usual y bastante utilizado hoy en día.Insistimos en que es algo que se utiliza con mucha frecuencia, puesto que moverse por Internet Suite, websockets y política del mismo origen.
Los sitios web abiertos en un le navigateurUn navegador (además: browser) es una herramienta informática que te permite ver documentos y datos y navegar por la red. Los navegadores pueden mostrar distintos tipos de recursos de información; principalmente documentos HTML, a pesar de todo, además son posibles otros tipos de archivos y contenido multimedia, como PDF, JPEG, MPEG, GIF o el lenguaje de meta marcado. A través el uso de complementos especiales y la configuración respectivo, los Suite web pueden hacer solicitudes WebSocket y HTTP bajo el modelo de seguridad del navegador. Es necesaria una conexión HTTP inicial para obtener un Id de sesiónUn ID de sesión es un número de identificación que se genera en el lado del servidor para asignar peticiones de usuario a una sesión. Este ID se almacena localmente con el usuario y se transfiere en forma de cookies o como un atributo URI (Uniform Resource Identifier). Cómo funciona Se puede ingresar a los datos de la última sesión que se almacena en el lado del servidor usando el Suite de depurador único. La misma política de origen impide que los sitios web puedan realizar esta conexión HTTP.
Para mayor seguridad contra los ataques de reencuadernación de DNSConcepto de DNS¿Qué son las DNS (Domain Name Server)?Al hablar de DNS, nos referimos a las iniciales Domain Name System (Sistema de Nombres de Dominio). Consiste en una tecnología que recurre a las bases de datos para detectar la dirección IP a la que pertenece cualquier dominio que un usuario quiera desear. Es decir, toma la URL y la “traduce” para ofrecer como resultado su dirección exacta, su IP.Para quien Suite, Node.js verifica que las cabeceras del ‘Host’ para la conexión especifiquen una dirección IP o localhost o localhost6 con precisión.
Estas políticas de seguridad no permiten conectarse a un serveurLos servidores son ordenadores centrales y potentes dentro del campo de la tecnología de la información que procesan y proporcionan software y archivos en una red. Desde el punto de vista de un cliente, varios ordenadores en una red pueden ponerse en contacto con el servidor central para conseguir la información solicitada. En la arquitectura cliente-servidor, el servidor puede ser un software que proporciona un servicio y se ejecuta en Suite de depuración remoto especificando el nombre del host. Puedes evitar esta restricción especificando la dirección IP o utilizando túneles ssh como se describe a continuación.
Clients Inspecteur
Varias herramientas comerciales y de Open sourceEl Código Abierto u Open Source se refiere al código fuente del software que es abiertamente alcanzable y que puede ser cambiado y distribuido por cualquier persona. La propuesta de código abierto estipula diez requerimientos para las licencias de software de código abierto. El principio El código fuente de un software se hace público: cualquiera puede leerlo, desarrollar el propio software y copiarlo. El software puede ser utilizado o distribuido Suite pueden conectarse al Inspector de nodos. A continuación se ofrece información básica sobre estos temas:
- inspecter les nœuds
- Débogueur CLI pris en charge par Node.js Foundation qui utilise le protocole Inspector.
- Une version est incluse avec Node et peut être utilisée avec le nœud inspect myscript.js.
- La dernière version peut également être installée de manière autonome (par exemple, npm install -g node-inspect) et utilisée avec node-inspect myscript.js.
- Chrome DevTools 55+
- Option 1: Ouvrez chrome: // inspectez dans un navigateur basé sur Chromium. Cliquez sur le bouton Configurer et assurez-vous que l'hôte et le port de destination sont répertoriés.
- Option 2: Copiez devtoolsFrontendUrl à partir de la sortie de / json / list (voir ci-dessus) ou du texte d'indication –inspect et collez-le dans Chrome.
- Opción 3: Instale Chrome Extension NIM (Administrador del Inspector de Nodos): httpsHTTPS (protocolo de Transferencia de Hiper-Texto) es un protocolo que permite determinar una conexión segura entre el servidor y el cliente, que no puede ser interceptada por personas no autorizadas. En resumidas cuentas, es la versión segura de el http (Hyper Text Transfer Protocol) Cómo funciona Una conexión HTTP estándar en Internet puede ser fácilmente secuestrada por partes no autorizadas. El propósito de una conexión HTTPS es evitar esto: encriptar Suite://chrome.google.com/webstore/detail/nim-node-inspector-manage/gnhhdgbaldcilmgcpfddgdbkhjohddkj
- Visual Studio Code 1.10+
- Dans le panneau de débogage, cliquez sur l'icône des paramètres pour ouvrir .vscode / launch.json. Sélectionnez "Node.js" pour la configuration initiale.
- Visual Studio 2017
- Choisissez "Déboguer> Démarrer le débogage" dans le menu ou appuyez sur F5.
- JetBrains WebStorm 2017.1+ et autres IDE JetBrains
- Créez une nouvelle configuration de débogage Node.js et cliquez sur Déboguer. –Inspect sera utilisé par défaut pour Node.js 7+. Pour désactiver js.debugger.node.use.inspect dans le registre IDE.
- Interface à distance Chrome
- Dispose d'une bibliothèque pour faciliter les connexions aux points de terminaison du protocole Inspector
Options de ligne de commande
Le tableau suivant répertorie l'impact de divers indicateurs d'exécution sur le débogage:
- -Inspecter:
- Activer l'agent d'inspection
- Écouter sur l'adresse et le port par défaut (127.0.0.0.1: 9229)
- –Inspect = [hôte: port]:
- Activer l'agent d'inspection
- Lier à l'adresse du nom d'hôte ou à l'hôte (par défaut: 127.0.0.0.1)
- Écouter sur le port (par défaut: 9229)
- –Inspect-brk
- Activer l'agent d'inspection
- Écouter sur l'adresse et le port par défaut (127.0.0.1:9229)
- Pause avant le début du code utilisateur
- –Inspect-brk =[port hôte]
- Activer l'agent d'inspection
- Lier à l'adresse du nom d'hôte ou à l'hôte (par défaut: 127.0.0.0.1)
- Écouter sur le port (par défaut: 9229)
- Pause avant le début du code utilisateur
- noeud inspecter script.js
- Spawn processus enfant pour exécuter le script utilisateur sous –inspect flag; et utilisez le processus principal pour exécuter le débogueur CLI.
- noeud inspecter –port = xxxx script.js
- Spawn processus enfant pour exécuter le script utilisateur sous –inspect flag; et utilisez le processus principal pour exécuter le débogueur CLI.
- Écouter sur le port (par défaut: 9229)
Activation des scénarios de débogage à distance
Je vous recommande de ne jamais faire écouter le débogueur sur une adresse IP publique. Si vous devez autoriser les connexions de débogage à distance, je vous recommande d'utiliser à la place des tunnels ssh. Je fournis l'exemple suivant à des fins d'illustration uniquement. Veuillez comprendre le risque de sécurité lié à l'autorisation d'accès à distance à un service privilégié avant de continuer.
Supposons que vous exécutiez Node.js sur une machine distante, remote.example.com, vous voulez pouvoir déboguer. Sur cette machine, vous devez démarrer le processus de nœud avec l'inspecteur écoutant uniquement localhost (valeur par défaut).
Nœud $ --inspect server.js [php] Maintenant, sur votre machine locale à partir de laquelle vous souhaitez démarrer une connexion client de débogage, vous pouvez configurer un tunnel ssh: [php] $ ssh -L 9221: localhost: 9229 @ user_sample. remote.com
Cela démarre une session de tunnel ssh où une connexion au port 9221 de votre machine locale sera transmise au port 9229 de remote.example.com. Vous pouvez maintenant attacher un débogueur comme Chrome DevTools ou Visual Studio Code à localhost: 9221, qui devrait pouvoir déboguer comme si l'application Node.js s'exécutait localement.





