"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
-
Trình kết xuất → tải trước
notes.exportCsv()renderer.jsgọi API được hiển thị bởipreload.js. -
Giữa các quy trình
notes: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. -
Quy trình chínhMột trình xử lý xuất khẩu
main.jsxử 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.
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:
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ỏ
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.
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.
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.
{
"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.
Duyệt qua sáu tệp nguồn
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.
- Theo Notion ' s clipboard cầu Áp dụng cách tiếp cận tương tự cho ỨNG dụng Electron đóng gói.
- Quan sát xuất trình duyệtChụp một cú nhấp chuột thực sự và xem yêu cầu nào nó thực hiện.
- Thực hiện theo một chức năng gốcTiếp tục vào nhị phân khi một tính năng phụ thuộc vào mã gốc.