弄清楚
导出的笔记写到哪里。

用 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. 再问一个问题

在同一段对话中继续提问:

如果文件无法写入,会发生什么?沿着错误处理追踪回页面。

也可以提供自己的应用,询问其中一个按钮、文件或行为。

顶部