02 / Tutoriel débutant / 8 min de lecture

Comment utiliser REA : suivez le bouton Export d’une application

Vous cliquez sur « Export notes », mais où va le fichier CSV ? Utilisez REA pour suivre le bouton dans une petite application Electron, puis testez le code qui formate le fichier.

Sur cette page
JavaScript / ElectronSans moteur natifExemple pédagogique officiel
Ce que vous apprendrez
  • Télécharger une petite application et donner le chemin de son dossier à REA.
  • Trouver le gestionnaire d’export et la destination prévue : Downloads/notes.csv.
  • Exécuter un petit test pour vérifier l’export des virgules et des guillemets.

01. Choisissez une question

« Explique cette application » est une demande vaste. Commencez par un comportement précis et une réponse vérifiable :

Notre question
Lorsque je clique sur Export notes, où va le fichier CSV, et que se passe-t-il si le titre d’une note contient des virgules ou des guillemets ?

Nous utilisons l’ exemple officiel REA Notes: six petits fichiers représentant une application Electron. C’est un exemple pédagogique, pas une application de production. Son analyse statique ne nécessite pas d’installer Electron.

02. Récupérez l’exemple

Téléchargez notes-example.zip depuis rea.tools et extrayez-le dans un nouveau dossier. Gardez son chemin à portée de main. Vous devriez y trouver :

Fichiers de l’exemple
notes-example/
  package.json
  index.html
  renderer.js
  preload.js
  main.js
  csv.js

Si REA n’est pas encore connecté, suivez le guide d’installation. Vous pouvez inspecter cet exemple sans ouvrir de fenêtre d’application.

03. Demandez à votre agent de l’inspecter

Remplacez le chemin de cette consigne par le chemin absolu du dossier extrait.

Consigne d’analyse
Utilise REA pour inspecter statiquement /absolute/path/to/notes-example. Suis le bouton Export notes à travers le processus de rendu, le pont preload et le processus principal. Indique le chemin du fichier de sortie, les colonnes CSV ainsi que les fichiers et lignes qui étayent ta réponse. Ne lance pas Electron. Distingue le code observé des hypothèses.

Vous pouvez aussi recueillir directement les résultats statiques de REA dans le terminal :

Terminal
npx -y [email protected] analyze-javascript-application "/absolute/path/to/notes-example" --json > notes-analysis.json

La commande fixe la version utilisée pour ce tutoriel. Le JSON contient des éléments d’analyse, pas une explication en langage naturel ; votre agent de programmation s’en sert pour orienter la suite de l’inspection.

04. Suivez le chemin de l’export

La réponse : l’application est conçue pour enregistrer notes.csv dans le dossier Téléchargements du système d’exploitation. Ce réglage se trouve dans main.js. Voici comment le bouton atteint ce code.

Bouton→Preload→IPC→Fichier CSV

Dans Electron, la page et l’application principale s’exécutent séparément. Preload expose une méthode que la page peut appeler. IPC est le message qui transmet la demande à l’application principale, capable d’écrire le fichier.

EmplacementRôle du code
renderer.jsLe gestionnaire du clic appelle window.notes.exportCsv().
preload.jsLa méthode exposée invoque le canal notes:export via IPC.
main.jsLe gestionnaire correspondant construit un chemin dans Téléchargements et écrit notes.csv.
csv.jsLa fonction de formatage écrit id,title, entoure chaque titre de guillemets et double les guillemets qu’il contient.

Le code utilise la méthode Electron app.getPath("downloads"). Cela établit la destination prévue, sans prouver qu’un fichier a réellement été écrit sur votre machine. Ci-dessous, nous testons directement la fonction de formatage.

05. Vérifiez une prédiction

Donnez à la fonction de formatage une note dont le titre est Hello, "REA". La ligne CSV attendue est :

Sortie attendue
id,title
1,"Hello, ""REA"""

La virgule reste dans un seul champ entre guillemets. Chaque guillemet interne est doublé. Pour le vérifier, enregistrez le code suivant sous check.cjs dans le dossier extrait notes-example :

check.cjs
const assert = require("node:assert/strict");
const { toCsv } = require("./csv.js");

const actual = toCsv([{ id: 1, title: 'Hello, "REA"' }]);
const expected = 'id,title\n1,"Hello, ""REA"""\n';
assert.equal(actual, expected);
console.log(actual);
console.log("PASS: comma and quotes stay in one field.");
À exécuter depuis le dossier de l’exemple
node check.cjs

Vérifié localement. Nous avons exécuté l’analyse statique REA 6.4.0 et ce test de formatage le 12 octobre 2026. La sortie correspondait au résultat attendu. Nous n’avons ni lancé l’interface Electron ni testé les permissions du système de fichiers via son bouton d’export.

06. Poursuivez avec une question plus précise

Posez maintenant une question qui teste l’explication, plutôt que de demander une description plus générale :

Consigne de suivi
Si l’écriture de notes.csv échoue, comment l’erreur remonte-t-elle jusqu’à la page ? Suis la gestion des erreurs dans les fichiers fournis. Identifie les gestionnaires manquants, mais ne modifie pas l’application.

Conservez trois éléments dans chaque rapport : le résultat, son emplacement dans le code et ce que vous avez réellement testé. Vous repérerez ainsi plus facilement les explications plausibles qui dépassent les éléments disponibles.

Ensuite / Exemple sur un paquet réelDécouvrez pourquoi une URL générée contient encore « ! ».

Exemple et méthode : Première investigation officielle de REA. Cette page est un tutoriel indépendant, complété par une analyse locale et un test du formatage. Télécharger le résumé d’analyse.

Vous découvrez l’outil ? Qu’est-ce que REA ? · Comment nous vérifions nos guides