02 / 入門教學 / 閱讀約 8 分鐘

REA 使用教學:追蹤應用程式的匯出按鈕

點選「Export notes」後,CSV 檔案去了哪裡?用 REA 追蹤一個小型 Electron 應用程式中的按鈕,再測試生成檔案內容的程式碼。

本頁內容
JavaScript / Electron無需原生分析引擎官方教學範例
你將學會
  • 下載一個小型應用程式,將資料夾路徑交給 REA。
  • 找到匯出處理函式及預期儲存位置: Downloads/notes.csv.
  • 執行簡短驗證,檢查逗號和引號能否正確匯出。

01. 選擇一個問題

「解釋這個應用程式」範圍太大。先從一個能描述清楚、也能核對答案的行為開始:

這次要查的問題
點選 Export notes 後,CSV 檔案會儲存在哪裡?如果筆記標題包含逗號或引號,會怎樣處理?

我們使用 REA 官方 Notes 範例:六個小檔案組成的 Electron 教學範例,並非正式使用的應用程式。靜態分析不需要安裝 Electron。

02. 取得範例

從 rea.tools 下載 notes-example.zip 並解壓到新資料夾。記好資料夾路徑,應該看到以下檔案:

範例檔案
notes-example/
  package.json
  index.html
  renderer.js
  preload.js
  main.js
  csv.js

如果尚未連線 REA,請先閱讀 安裝指南。這個範例無需啟動桌面視窗即可分析。

03. 讓 AI 代理分析

將提示詞中的範例路徑替換為解壓資料夾的絕對路徑。

分析提示詞
使用 REA 靜態分析 /absolute/path/to/notes-example。沿渲染程序、preload 橋接層和主程序追蹤 Export notes 按鈕。給出輸出檔案路徑、CSV 列,以及支持結論的檔案和行號。不要啟動 Electron。區分實際觀察到的程式碼與推測。

也可以直接在終端機收集 REA 的靜態證據:

終端機
npx -y rea-agents@6.4.0 analyze-javascript-application "/absolute/path/to/notes-example" --json > notes-analysis.json

指令固定了本教學使用的版本。輸出 JSON 是分析證據,並非自然語言解釋;AI 程式開發代理會利用它指導後續檢查。

04. 追蹤匯出路徑

答案是: 按程式碼設計,應用程式會將 notes.csv 儲存到作業系統的下載資料夾。設定位於 main.js。下面追蹤按鈕如何到達這段程式碼。

按鈕→Preload→IPC→CSV 檔案

在 Electron 中,頁面和應用程式主程序獨立執行。 Preload 暴露一個頁面可以呼叫的方法。 IPC 是把請求傳給主程序的訊息,主程序可以寫入檔案。

位置程式碼的作用
renderer.js點選處理函式呼叫 window.notes.exportCsv().
preload.js暴露的方法呼叫 notes:export IPC 通道。
main.js對應處理函式建構下載目錄路徑,並寫入 notes.csv.
csv.js格式化函式寫入 id,title,為每個標題加引號,並將內部引號寫成雙引號轉義。

程式碼使用 Electron 的 app.getPath("downloads")。這隻能確定預期儲存位置,不能證明檔案已實際寫入你的電腦。下文會直接驗證格式化函式。

05. 驗證一個預測

向格式化函式傳入標題為 Hello, "REA"的筆記。預期 CSV 行為:

預期輸出
id,title
1,"Hello, ""REA"""

逗號應保留在同一個帶引號欄位中,每個內部引號變為兩個引號。要驗證,請把以下內容儲存為 check.cjs,放在解壓後的 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.");
在範例資料夾中執行
node check.cjs

已在本機驗證。 我們於 2026 年 10 月 12 日執行 REA 6.4.0 靜態分析和此格式化驗證,輸出一致。我們沒有啟動 Electron 介面,也沒有透過匯出按鈕測試檔案系統權限。

06. 用更具體的問題繼續

接下來提出一個能檢驗解釋的追問,而不是要求更多籠統描述:

追問提示詞
如果 notes.csv 寫入失敗,錯誤如何傳回頁面?追蹤所提供檔案中的錯誤處理。指出任何缺失的處理函式,但不要修改應用程式。

每份報告都保留三件事: 發現、原始碼位置,以及實際測試過什麼。 這樣更容易識別聽起來合理、卻超出證據支持範圍的解釋。

下一篇 / 真實套件案例查明為什麼生成的 URL 仍包含「!」。

範例和流程: REA 官方首次分析。本頁是獨立教學,額外進行了本機分析和格式化驗證。 下載分析摘要。

第一次使用這個工具? REA 是什麼? · 我們如何查核教學