Rastrear un Electron
Exportación CSV.

Haga clic en un botón desde la API de la página, a través de Electron IPC, hasta el escritor de archivos CSV.

¿A dónde van las "Notas de exportación"?

Esta guía utiliza una pequeña aplicación Electron. Haciendo clic Notas de exportación llama a una API en la página, cruza al proceso principal y escribe un CSV . El comportamiento se distribuye en varios archivos.

La exportación CSV a través de procesos Electron

  1. Renderizador → precarganotes.exportCsv()renderer.js llama a la API expuesta por preload.js.
  2. Entre procesosnotes:exportLa precarga invoca un canal IPC: un mensaje con nombre para el proceso principal.
  3. Proceso principalUn manipulador de exportacionesmain.js maneja ese canal y llama al escritor CSV.

csv.js formatea las notas → main.js escribe downloads/notes.csv.

REA hace coincidir la llamada IPC literal con su controlador e identifica la API expuesta. La ruta se infiere del código; una captura en tiempo de ejecución puede verificar qué se ejecuta.

Pregunte por la exportación CSV

Conecte a su agente a REA y asígnele el directorio de la aplicación o el archivo ASAR:

Su agente de codificación

Use REA para averiguar qué sucede cuando exporto notas en esta aplicación. ¿Dónde se crea el CSV?

Mensaje de ejemplo. Incluya la ruta absoluta a la carpeta de la aplicación o app.asar.

REA lee los archivos de la aplicación y crea un mapa de puntos de entrada, módulos y límites de procesos. Su agente usa ese mapa para limitar la investigación a la función de exportación.

Rastrear el código de exportación

La página llama a una pequeña API

renderer.js * fuente de ejemplo
document.querySelector("#export").addEventListener("click", async () => {
  const destination = await window.notes.exportCsv();
  document.querySelector("#status").textContent = `Saved to ${destination}`;
});

La página conoce el nombre del método. La implementación vive en la precarga, que la expone al renderizador.

preload.js * fuente de ejemplo
contextBridge.exposeInMainWorld("notes", {
  exportCsv: () => ipcRenderer.invoke("notes:export"),
});

Registros REA notes.exportCsv y el canal literal notes:export. Empareja esa invocación con el único controlador coincidente en el proceso principal.

main.js * fuente de ejemplo
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});

Leer el controlador responde a la pregunta original: csv.js formatea las notas y el proceso principal escribe notes.csv en la carpeta de descargas del usuario.

REA resultado · resumen.extracto de ipc
{
  "literal_channels": 1,
  "renderer_transmissions": 1,
  "main_handlers": 1,
  "paired_renderer_transmissions": 1,
  "ambiguous_renderer_transmissions": 0
}

Grabado por REA 4.1.0 en el ejemplo descargable a continuación. Las ubicaciones de origen acompañan a los hallazgos de la API, el canal y el controlador.

Analice el ejemplo usted mismo

Descargue el ejemplo y descomprímalo. El archivo contiene la versión completa notes-example carpeta. Analícelo con Node.js y npm; Electron no es necesario para este ejemplo.

Descargar ZIP de ejemplo

Explore los seis archivos fuente
Análisis estático de aplicaciones
npx -y rea-agents@latest analyze-javascript-application \
  /absolute/path/to/notes-example --json

Reemplace la ruta con la carpeta que descomprimió. Debería encontrar un canal IPC y un controlador coincidente en normalized_result.summary.ipc. Las ubicaciones de origen están en normalized_result.graph.

Para su propia aplicación, use el mismo comando con su directorio o ruta ASAR. Un agente puede seguir una cadena literal, un nombre de API o un canal IPC con las herramientas de rastreo de funciones de REA.

Inspeccione la grabadora CSV

Sigue notes:export a su manejador. ¿Qué entradas llegan al escritor CSV y qué sucede si falla la escritura del archivo?

Utilice las ubicaciones de origen para inspeccionar esos detalles. Los nombres de canal calculados y los controladores ambiguos pueden permanecer sin resolver; las observaciones en tiempo de ejecución le brindan otra forma de investigarlos.

Arriba