02 / 入門教學 / 閱讀約 8 分鐘
REA 使用教學:追蹤應用程式的匯出按鈕
點選「Export notes」後,CSV 檔案去了哪裡?用 REA 追蹤一個小型 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。下面追蹤按鈕如何到達這段程式碼。
在 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 資料夾中:
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 官方首次分析。本頁是獨立教學,額外進行了本機分析和格式化驗證。 下載分析摘要。