弄清楚
匯出的筆記寫到哪裡。

用 REA 檢查一個小應用,追蹤 Export notes 按鈕,再親自驗證一個細節。

提供的示例 · Node.js 和 npm · 程式設計助手

1. 把助手連線到 REA

使用 Claude Code、Codex、Cursor 等程式設計助手。需要 Node.js 和 npm;安裝指南列出了支援的版本。

你的程式設計助手

使用 npx rea-agents@latest setup 安裝 REA,並連線到這個程式設計助手。先展示安裝計劃,等我確認後再執行,然後驗證安裝結果。

或者在終端中執行此命令:

npx rea-agents@latest setup

檢視計劃,確認配置後重啟助手。如果已經連線,直接繼續。

2. 問清 CSV 寫到哪裡

示例是一個包含六個檔案的 Electron 應用,帶有Export notes(匯出筆記)按鈕。助手無需安裝或啟動 Electron 就能檢查程式碼。

你的程式設計助手

下載 https://rea.tools/examples/notes-example.zip,放進一個新的示例資料夾並解壓。用 REA 找出點選 Export notes 後發生了什麼。展示 notes.csv 寫到哪裡、有哪些欄位,以及相關檔案和行號。

助手會下載並解壓檔案,再把目錄交給 REA 檢查。

下載示例ZIP

如果助手不能下載檔案,你也可以手動解壓。把 notes-example 資料夾的路徑交給它,再問同一個匯出問題。

3. 從回答追蹤到程式碼

尋找帶檔案和行號的簡短解釋:

按鈕傳送 notes:export 訊息。主程序把筆記轉換為 CSV,並將 notes.csv 寫到使用者的下載資料夾。列名為 id 和 title。

從按鈕到檔案寫入

  1. 頁面 · renderer.jsExport notes(匯出筆記)呼叫 notes.exportCsv()。
  2. 橋接 · preload.jsnotes:export向主程序傳送命名訊息。
  3. 處理函式 · main.js寫入 notes.csv呼叫 csv.js 中的格式化函式,再寫入檔案。
REA 的靜態分析把訊息和處理函式關聯起來。匯出位置是從程式碼中讀到的。
main.js · 第 8–12 行原始碼
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});

檔案路徑、格式化函式和寫入呼叫都在這個處理函式中。如果回答沒有展示這些行,可以讓助手補上。

檢視完整的程式碼追蹤和記錄的 REA 結果。

4. 檢查預測

CSV 用逗號分隔各列。如果筆記標題本身包含逗號或引號,會發生什麼?

你的程式設計助手

預測 id 為 1、標題為 Hello, "REA" 的筆記會匯出怎樣的 CSV。再用 Node.js 執行示例的 toCsv 格式化函式驗證。展示預測和實際輸出。

預期格式化程式輸出
id,title
1,"Hello, ""REA"""

標題保留在一個帶引號的欄位裡,每個引號都寫成兩個。這裡用 Node.js 直接檢查格式化函式。

自己檢查一下

在解壓後的 notes-example 資料夾裡開啟終端:

Node.js · CSV 格式化函式
node <<'JS'
const { toCsv } = require('./csv.js');
process.stdout.write(toCsv([{ id: 1, title: 'Hello, "REA"' }]));
JS

這條命令需要 Bash、Zsh 等支援 here-document 的 shell。助手也可以在你的系統 shell 中執行同樣的 JavaScript。

5. 再問一個問題

在同一段對話中繼續提問:

如果檔案無法寫入,會發生什麼?沿著錯誤處理追蹤回頁面。

也可以提供自己的應用,詢問其中一個按鈕、檔案或行為。

頂部