Membandingkan file Word secara programatik adalah kebutuhan yang sering muncul untuk layanan backend yang perlu mendeteksi perubahan, menghasilkan laporan revisi, atau menegakkan kebijakan dokumen. GroupDocs.Comparison Cloud SDK for Node.js menyediakan API yang kuat yang menyederhanakan tugas ini untuk aplikasi Node.js. Dalam panduan ini Anda akan belajar cara menyiapkan SDK, menjalankan perbandingan lengkap antara dua file DOCX, menggunakan perintah cURL yang setara, memahami setiap bagian implementasi, dan mengikuti rekomendasi praktik terbaik untuk menjaga solusi Anda tetap andal dan aman.

Contoh Kode Lengkap: Bandingkan Dokumen Word di Node.JS

Contoh berikut menunjukkan alur kerja end‑to‑end lengkap untuk membandingkan dua dokumen Word menggunakan GroupDocs.Comparison Cloud SDK for Node.js.

const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

// ==== File definitions =======================================================
const sourceFileName = "document1.docx";
const targetFileName = "document2.docx";
const resultFileName = "comparison_result.docx";

const sourceFilePath = path.resolve(__dirname, sourceFileName);
const targetFilePath = path.resolve(__dirname, targetFileName);

// ==== Main async function ====================================================
(async () => {
    try {
        // ---- Upload source document -----------------------------------------
        const sourceData = fs.readFileSync(sourceFilePath);
        const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: sourceFileName,
            file: sourceData
        });
        await storageApi.uploadFile(uploadSourceReq);

// ---- Upload target document -----------------------------------------
        const targetData = fs.readFileSync(targetFilePath);
        const uploadTargetReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: targetFileName,
            file: targetData
        });
        await storageApi.uploadFile(uploadTargetReq);

// ---- Prepare comparison options --------------------------------------
        const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
            sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
            targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
            outputPath: resultFileName,
            // optional: you can set settings like generateSummaryPage, showDeletedContent, etc.
        });

const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
            compareOptions: compareOptions
        });

// ---- Execute comparison -----------------------------------------------
        const compareResult = await compareApi.compareDocument(compareRequest);
        console.log("Comparison completed. Result stored at:", compareResult.path);

// ---- (Optional) Clean up uploaded files --------------------------------
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
        // Note: result file remains in storage; you can download it if needed.
    } catch (error) {
        console.error("Error during comparison:", error);
    }
})();

Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan uji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.

Lakukan Perbandingan Dokumen dengan cURL dan REST API

Jika Anda lebih suka pendekatan yang tidak bergantung pada bahasa, Anda dapat mencapai hasil yang sama dengan permintaan HTTP biasa. Di bawah ini adalah perintah cURL penting.

  1. Otentikasi dan dapatkan token akses
    Ganti YOUR_CLIENT_ID dan YOUR_CLIENT_SECRET dengan kredensial Anda.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Unggah file DOCX sumber
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document1.docx"
  1. Unggah file DOCX target
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document2.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document2.docx"
  1. Jalankan operasi perbandingan
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFile": { "filePath": "document1.docx" },
           "targetFiles": [{ "filePath": "document2.docx" }],
           "outputPath": "comparison_result.docx"
         }'
  1. Unduh file perbandingan yang dihasilkan
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

Untuk detail lebih lanjut tentang payload permintaan dan format respons, lihat dokumentasi API resmi.

Memahami Kode Membandingkan Dokumen Word di Node.JS

Berikut adalah penjelasan langkah demi langkah dari contoh lengkap:

  1. Impor SDK dan modul Node.js
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

Namespace GroupDocsComparisonCloud memberikan akses ke semua kelas API.

  1. Buat konfigurasi dengan kredensial klien
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

Objek ini mengautentikasi setiap panggilan API berikutnya.

  1. Instansiasi CompareApi dan StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi menangani perbandingan, sementara StorageApi mengelola unggahan dan penghapusan file. Lihat referensi API untuk detail metode.

  1. Unggah file DOCX sumber dan target
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

Pola yang sama diulang untuk file target.

  1. Konfigurasikan CompareOptions dan jalankan perbandingan
const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
    sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
    targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
    outputPath: resultFileName,
});
const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
    compareOptions: compareOptions
});
const compareResult = await compareApi.compareDocument(compareRequest);

CompareOptions memungkinkan Anda menyesuaikan operasi (mis., menghasilkan halaman ringkasan). Objek hasil berisi jalur ke dokumen perbandingan yang dihasilkan.

  1. Bersihkan file sementara (opsional)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

Menghapus file asli yang diunggah menjaga penyimpanan tetap rapi.

Prasyarat dan Penyiapan untuk GroupDocs.Comparison

  1. Node.js version - Pastikan Anda menjalankan Node 14 atau yang lebih baru.
  2. Obtain client credentials - Daftar di portal GroupDocs Cloud untuk mendapatkan clientId dan clientSecret.
  3. Instal SDK
npm install groupdocs-comparison-cloud
  1. (Opsional) Unduh proyek contoh - Anda dapat mengkloning repositori dari halaman GitHub.
  2. Konfigurasikan lingkungan Anda - Atur kredensial sebagai variabel lingkungan atau ganti placeholder dalam kode.

Untuk daftar lengkap biner yang dapat diunduh, lihat halaman unduhan.

Praktik Terbaik untuk Perbandingan Dokumen Word yang Efisien

  • Validasi file input - Periksa ukuran dan format file sebelum mengunggah untuk menghindari panggilan API yang tidak perlu.
  • Gunakan kembali sesi penyimpanan - Unggah file sekali dan gunakan kembali jalurnya untuk beberapa perbandingan guna mengurangi latensi.
  • Aktifkan halaman ringkasan hanya bila diperlukan - Membuat halaman ringkasan menambah waktu pemrosesan; nonaktifkan untuk pemeriksaan diff sederhana.
  • Tangani dokumen besar secara asynchronous - Untuk file DOCX yang lebih besar dari 10 MB, pertimbangkan mem‑poll status pekerjaan alih‑alih menunggu secara sinkron.
  • Amankan kredensial - Simpan clientId dan clientSecret dalam variabel lingkungan atau manajer rahasia; jangan pernah menuliskannya secara hard‑code.

Kesimpulan

Membandingkan dokumen Word di Node.JS menjadi mudah dengan GroupDocs.Comparison Cloud SDK for Node.js. Dengan mengikuti langkah-langkah instalasi, menggunakan contoh kode yang disediakan, dan secara opsional memanfaatkan REST API dengan cURL, Anda dapat mengintegrasikan perbandingan dokumen yang kuat ke dalam layanan backend apa pun. Ingatlah untuk mengamankan kredensial Anda, membersihkan file sementara, dan menyesuaikan opsi perbandingan untuk kinerja. Untuk penyebaran produksi, Anda memerlukan versi berlisensi; detail harga tersedia di halaman produk, dan Anda dapat memperoleh lisensi sementara untuk evaluasi dari halaman lisensi sementara. Mulailah bereksperimen hari ini dan bawa kemampuan perbedaan dokumen yang dapat diandalkan ke aplikasi Node.js Anda.

FAQs

  • Bagaimana cara membandingkan dokumen Word di Node.JS tanpa menulis kode?
    Anda dapat menggunakan operasi yang sama melalui panggilan REST. Contoh cURL dalam artikel ini menunjukkan urutan tepat: otentikasi, mengunggah file, memanggil endpoint perbandingan, dan mengunduh hasilnya.

  • Format file apa yang didukung untuk perbandingan?
    SDK mendukung DOCX, DOC, ODT, RTF, dan TXT di antara lainnya. Semua nama format tidak sensitif huruf besar/kecil, tetapi mereka didokumentasikan dalam huruf kapital (misalnya, DOCX) di referensi API.

  • Bisakah saya membandingkan lebih dari dua dokumen sekaligus?
    Ya. Array targetFiles dalam CompareOptions dapat berisi beberapa objek FileInfo, memungkinkan Anda membandingkan file sumber dengan beberapa target dalam satu permintaan.

  • Apakah ada cara untuk menyesuaikan gaya visual hasil perbandingan?
    SDK menyediakan pengaturan seperti showDeletedContent, showInsertedContent, dan generateSummaryPage. Sesuaikan properti ini dalam CompareOptions untuk mengontrol bagaimana perubahan ditandai. Lihat dokumentasi resmi untuk daftar lengkap opsi.

Baca Selengkapnya