Saltar al contenido principal

NodeJS

Captura el tráfico HTTP/HTTPS de apps y scripts de NodeJS con Proxyman Automatic Setup. Funciona con axios, got, superagent, fetch y node-fetch.

1. Nueva solución automática (v4.7.0 o posterior) ✅​

Proxyman v4.7.0 o posterior puede capturar el tráfico HTTP/HTTPS de NodeJS con un solo clic.

  • Solución de un solo clic: no necesitas configurar el proxy HTTP ni confiar manualmente en el certificado autofirmado.
  • Compatible con muchas librerías de NodeJS: axios, got, superagent, fetch y node-fetch

Cómo usarlo:​

  1. Abre Proxyman -> Setup Menu -> Automatic Setup
  2. Haz clic en "Open New Terminal"
  3. Acepta la solicitud de permiso de AppleScript si aparece
  4. Se abre una nueva ventana de Terminal -> inicia tu servidor backend de NodeJS o ejecuta tus scripts ahí => Proxyman captura todo el tráfico automáticamente.
  5. Por ejemplo:
$ npm start

Listo ✅

Ventana de Proxyman Automatic Setup con el botón Open New Terminal que captura librerías de NodeJS como axios y fetch

Captura el tráfico de NodeJS

Consulta la página de Automatic Setup:

Estos son problemas habituales al usar NodeJS + Proxyman:

1. Proxyman no puede capturar las solicitudes a http://localhost:3000 de mi servidor NodeJS​

Si usas NodeJS para servir un sitio web en localhost (por ejemplo, http://localhost:3000), es posible que Proxyman no funcione. Por ejemplo, usas ExpressJS para servir un servidor de API en http://localhost:3000

Solución:​

Consulta No veo ninguna solicitud de mi servidor localhost.

2. Proxyman no puede capturar las solicitudes HTTP que hace mi servidor local de NodeJS.​

  • Las solicitudes de fetch o axios no aparecen en la app de Proxyman
  • Recibo un error de SSL en las solicitudes HTTPS

Solución​

De forma predeterminada, las solicitudes HTTP/HTTPS de tus librerías de NodeJS no pasan por el servidor proxy HTTP, así que Proxyman no puede capturar el tráfico.

2.1 node-fetch​

  1. Instala el paquete global-agent
npm install global-agent

2. Al principio de tu código de NodeJS, añade el siguiente código:

import { bootstrap } from 'global-agent';
bootstrap();
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';

3. Añade esta variable de entorno a tu shell actual. Asegúrate de que Proxyman esté escuchando en el puerto 9090

export GLOBAL_AGENT_HTTP_PROXY=http://127.0.0.1:9090

4. Listo ✅

Vuelve a ejecutar tu script de NodeJS y las solicitudes HTTP/HTTPS aparecerán en la app de Proxyman.

Código de ejemplo​

import fetch from 'node-fetch';

// Setup global-agent
import { bootstrap } from 'global-agent';
bootstrap();
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0';

// fetch the data
const response = await fetch('https://httpbin.org/get?id=123');
const data = await response.json();

// Done
console.log(data);

2.2 Axios​

Según la documentación de Axios, puedes definir las variables de entorno HTTP_PROXY y HTTPS_PROXY.

  1. Haz clic en el icono de Proxyman en la barra de menús -> Listen on <IP>:<Port>
  2. Haz clic en Copy Shell Command
Menú de Proxyman en la barra de menús con Listen on IP and port y el elemento Copy Shell Command
  1. Abre Terminal y pega el comando. Por ejemplo: export https_proxy=http://192.168.1.103:9090 http_proxy=http://192.168.1.103:9090
  2. En la misma Terminal -> inicia tu servidor de NodeJS con axios.
  3. Axios enviará el tráfico a través de Proxyman.
  4. Listo ✅

2.3 Uso otra librería de NodeJS​

Si no usas fetch ni axios, la configuración puede ser diferente. Consulta la documentación de tu librería para ver cómo configurar el proxy y confiar en el certificado de Proxyman.

Más información​