Theo dõi Electron
CSV xuất khẩu.

Thực hiện theo một nút bấm từ api trang, THÔNG qua Electron IPC, ĐẾN TRÌNH ghi tệp CSV.

"Xuất ghi chú" đi đâu?

Hướng dẫn này sử dụng MỘT ỨNG dụng Electron nhỏ. Nhấp chuột Xuất ghi chú gọi MỘT API trong trang, đi vào quy trình chính và VIẾT CSV . Hành vi được trải rộng trên một số tệp.

XUẤT CSV qua CÁC quy TRÌNH Electron

  1. Trình kết xuất → tải trướcnotes.exportCsv()renderer.js gọi API được hiển thị bởi preload.js.
  2. Giữa các quy trìnhnotes:exportTải trước gọi một KÊNH IPC: một thông báo được đặt tên cho quy trình chính.
  3. Quy trình chínhMột trình xử lý xuất khẩumain.js xử lý kênh đó và gọi CHO NHÀ văn CSV.

csv.js định dạng các ghi chú → main.js viết downloads/notes.csv.

REA khớp với lệnh GỌI IPC theo nghĩa đen với trình xử lý của NÓ và xác định API được hiển thị. Đường dẫn được suy ra từ mã; chụp thời gian chạy có thể kiểm tra những gì thực thi.

Hỏi VỀ xuất CSV

Kết nối agent CỦA BẠN VỚI REA và cung cấp cho nó thư mục ứng dụng hoặc TỆP ASAR:

Agent mã hóa của bạn

SỬ DỤNG REA để tìm những gì xảy ra khi tôi xuất ghi chú trong ứng dụng này. CSV được tạo ở đâu?

Ví dụ nhắc nhở. Bao gồm đường dẫn tuyệt đối đến thư mục ứng dụng hoặc app.asar.

REA đọc các tệp ứng dụng và xây dựng bản đồ các điểm vào, mô-đun và ranh giới quy trình. Agent của bạn sử dụng bản đồ đó để thu hẹp cuộc điều tra về tính năng xuất.

Theo dõi mã xuất

Trang gọi MỘT API nhỏ

renderer.js * nguồn ví dụ
document.querySelector("#export").addEventListener("click", async () => {
  const destination = await window.notes.exportCsv();
  document.querySelector("#status").textContent = `Saved to ${destination}`;
});

Trang biết tên phương thức. Việc triển khai sống trong tải trước, điều này cho thấy nó với trình kết xuất.

preload.js * nguồn ví dụ
contextBridge.exposeInMainWorld("notes", {
  exportCsv: () => ipcRenderer.invoke("notes:export"),
});

Hồ SƠ REA notes.exportCsv và kênh theo nghĩa đen notes:export. Nó ghép nối lời gọi đó với trình xử lý khớp duy nhất trong quy trình chính.

main.js * nguồn ví dụ
ipcMain.handle("notes:export", () => {
  const destination = path.join(app.getPath("downloads"), "notes.csv");
  writeFileSync(destination, toCsv(notes), "utf8");
  return destination;
});

Đọc trình xử lý trả lời câu hỏi ban đầu: csv.js định dạng các ghi chú và quá trình chính viết notes.csv vào Thư mục Tải xuống của người dùng.

KẾT quả REA · tóm tắt.trích đoạn ipc
{
  "literal_channels": 1,
  "renderer_transmissions": 1,
  "main_handlers": 1,
  "paired_renderer_transmissions": 1,
  "ambiguous_renderer_transmissions": 0
}

Được GHI LẠI bởi REA 4.1.0 trên ví dụ có thể tải xuống bên dưới. Vị trí nguồn đi kèm VỚI CÁC PHÁT hiện API, kênh và trình xử lý.

Tự phân tích ví dụ

Tải xuống ví dụ và giải nén nó. Kho lưu trữ chứa đầy đủ notes-example thư mục. Phân tích nó với Node.js và npm; Electron không cần thiết cho ví dụ này.

Tải xuống VÍ DỤ ZIP

Duyệt qua sáu tệp nguồn
Phân tích ứng dụng tĩnh
npx -y rea-agents@latest analyze-javascript-application \
  /absolute/path/to/notes-example --json

Thay thế đường dẫn bằng thư mục bạn đã giải nén. Bạn sẽ tìm thấy một KÊNH IPC và một trình xử lý phù hợp trong normalized_result.summary.ipc. Vị trí nguồn đang ở normalized_result.graph.

Đối với ứng dụng của riêng bạn, hãy sử dụng cùng một lệnh với thư mục HOẶC đường DẪN ASAR của nó. Một tác nhân có thể theo một chuỗi ký tự, TÊN API hoặc KÊNH IPC VỚI CÁC CÔNG cụ truy tìm tính năng CỦA REA.

Kiểm TRA NHÀ văn CSV

Theo dõi notes:export để xử lý của nó. Đầu vào nào đạt đến trình ghi CSV và điều gì sẽ xảy ra nếu việc ghi tệp không thành công?

Sử dụng các vị trí nguồn để kiểm tra các chi tiết đó. Tên kênh được tính toán và trình xử lý mơ hồ có thể vẫn chưa được giải quyết; các quan sát thời gian chạy cung cấp cho bạn một cách khác để điều tra chúng.

Hàng đầu