Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Mengunduh file ke penyimpanan lokal daripada menyimpannya di penyimpanan cloud memiliki beberapa keuntungan. Ini termasuk akses yang lebih mudah, akses tanpa koneksi internet, dan kepemilikan penuh atas data Anda.

Anda dapat mengunduh file tunggal dan banyak menggunakan modul Node.js bawaan. Anda juga bisa menggunakan perpustakaan pihak ketiga, untuk mencapai hasil yang sama.

Mengunduh File Tanpa Perpustakaan Pihak Ketiga

Untuk mengunduh file menggunakan Node.js, tanpa bantuan paket pihak ketiga, Anda memerlukan tiga modul inti Node.js: fs, https, Dan jalur.

Itu fs modul mendukung banyak tugas file termasuk membaca, membuat, memperbarui, menghapus, dan mengganti nama. Itu https modul membuat server web untuk menangani permintaan dan memberikan tanggapan. Itu jalur modul menyediakan cara untuk berinteraksi dengan direktori dan jalur file.

instagram viewer

Dengan menggunakan modul ini, Anda dapat mengirim permintaan HTTP GET untuk mengakses sumber daya file dari server web dan kemudian membuat salinan sumber daya di sistem lokal Anda.

Untuk memulai, impor modul yang diperlukan:

const https = memerlukan('https');
const fs = memerlukan('fs');
const jalan = memerlukan('jalur');

Anda harus menggunakan nama file dari URL sebagai nama default yang bagus untuk menyimpannya. Anda dapat menggunakan modul jalur .namadasar() metode untuk mendapatkan nama file dari URL-nya. Metode ini mengambil argumen path dan mengembalikan bagian terakhir dari path.

Misalnya:

const namafile = path.namadasar (url);

Kemudian, minta file dari server dengan mengaktifkan https.dapatkan() metode. Metode ini menggunakan URL sebagai argumen pertama dan fungsi callback untuk respons sebagai argumen kedua

Melewati url variabel sebagai argumen pertama dan kemudian fungsi panggilan balik untuk diproses saat metode ini menerima aliran respons:

https.get (url, (res) => {
})

Dalam fungsi panggilan balik, Anda dapat menggunakan fs.createWriteStream() metode untuk membuat aliran baru yang dapat ditulis, melewati nama file variabel sebagai argumen.

Misalnya:

const fileStream = fs.createWriteStream (nama file);
res.pipa(fileStream);

Itu buatWriteStream() metode memudahkan proses penulisan data ke file, terutama saat Anda menangani potongan data yang besar.

Itu pipa() metode kemudian mengirimkan aliran data respons GET ke fileStream obyek.

Untuk mencatat pesan ke konsol setelah skrip selesai mengunduh file, lampirkan a .pada() pemancar peristiwa ke fileStream variabel:

fileStream.on('menyelesaikan', () => {
fileStream.menutup();
menghibur.catatan('Unduh selesai');
});

Objek fileStream memancarkan a menyelesaikan acara ketika itu telah menulis semua data ke file. Tangkap ini melalui .pada() metode dan menyediakan fungsi callback untuk menutup fileStream dan mencatat pesan ke konsol.

Untuk eksekusi yang lebih baik dan penggunaan kembali skrip yang efisien, bungkus kode ini dalam fungsi yang menggunakan URL sebagai argumennya:

fungsiUnduh berkas(url) {
const namafile = path.namadasar (url);

https.get (url, (res) => {
const fileStream = fs.createWriteStream (nama file);
res.pipa(fileStream);

fileStream.on('menyelesaikan', () => {
fileStream.menutup();
menghibur.catatan('Unduh selesai')
});
})
}

Untuk menjalankan fungsi, panggil dan berikan URL file yang ingin Anda unduh:

Unduh berkas([url berkas]);

Untuk menjalankan skrip, buka terminal Anda dan masukkan simpul diikuti dengan nama file JavaScript:

simpul[nama skrip]

Skrip ini akan mengunduh URL file yang Anda berikan ke Unduh berkas() berfungsi dan simpan di direktori kerja Anda.

Penanganan Error Saat Download File

Di Node.js, kesalahan spesifik seperti menulis ke aliran, koneksi layanan yang buruk, atau masalah dengan file itu sendiri dapat terjadi saat mengunduh file. Sangat penting untuk mencatat pesan kesalahan saat kesalahan ini terjadi untuk dapat mengatasi masalah tersebut.

Coba/Tangkap Blokir

Blok try-catch adalah struktur pemrograman yang memungkinkan Anda menangani potensi kesalahan dan pengecualian dalam kode Anda.

Blok try-and-catch merupakan blok try...catch. Kode blok try berjalan terlebih dahulu, dan kode blok catch dijalankan jika blok try melontarkan pengecualian.

mencoba {
Unduh berkas([url berkas]);
} menangkap (kesalahan) {
menghibur.log (kesalahan);
}

Gunakan blok coba/tangkap untuk memastikan bahwa Anda dapat menemukan kesalahan apa pun terkait unduhan. Anda kemudian dapat menangani kesalahan apa pun yang diperlukan, seperti memasukkannya ke konsol atau mencoba mengunduh ulang.

Kode Status Respons HTTP

Kode status untuk respons HTTP menunjukkan apakah permintaan HTTP tertentu telah berhasil dijalankan.

Misalnya:

https.get (url, (res) => {
const kode = res.statusKode();
menghibur.log (kode)
const fileStream = fs.createWriteStream (nama file);
});

Jika permintaan mengembalikan kode status di luar rentang keberhasilan, 200-299, ada masalah dengan permintaan. Periksa kode status HTTP, lalu mencari arti dari kode status untuk menangani kesalahan yang diperlukan.

Mengunduh Banyak File

Anda dapat mengunduh banyak file secara bersamaan dengan meneruskan URL file sebagai argumen saat dijalankan simpul [nama skrip]. Untuk melakukan tugas ini, Anda harus memodifikasi bagian tertentu dari skrip Anda.

Dalam JavaScript, argumen diteruskan bersamaan dengan simpul perintah tersedia di process.argv, properti dari objek Node.js global. Properti ini mengembalikan larik argumen baris perintah. Elemen pertama dalam array ini seharusnya simpul, perintah aktual yang Anda jalankan. Yang kedua adalah nama file skrip, lalu setiap argumen berikut harus berupa URL.

Untuk mengunduh banyak file sekaligus, simpan array dari process.argv dalam sebuah variabel. Kemudian jalankan metode slice() untuk menghapus dua elemen pertama, yang bukan URL:

const args = proses.argv;
const url = args.slice(2);

Itu mengiris() metode membuat array baru dari elemen yang dipilih dalam array. Metode ini memilih dari awal yang ditentukan hingga akhir yang ditentukan (non-inklusif).

Dalam hal ini, meneruskan nilai 2 akan menghapus simpul nama perintah dan nama file skrip Anda.

Akhirnya, menggunakan metode peta JavaScript, lewati setiap elemen di url larik ke Unduh berkas():

url.peta(url =>{
unduh File (url)
});

Untuk menjalankan kode, masukkan simpul perintah bersama dengan nama file JavaScript Anda dan URL yang ingin Anda unduh:

simpul[nama skrip]url1url2url3

Menggunakan Perpustakaan Pihak Ketiga

Anda juga dapat mengunduh file menggunakan pustaka pihak ketiga seperti npm unduh kemasan.

Di dalam direktori skrip Anda, jalankan perintah npm berikut untuk menginstal unduh kemasan:

npm Install unduh

Wajibkan paket yang diunduh dalam skrip Anda, lalu simpan argumen baris perintah dalam larik:

const unduh = memerlukan('unduh');
const args = proses.argv;
const url = args.slice(2);

Anda sekarang dapat menggunakan unduh perpustakaan untuk mengunduh file. Anda dapat melakukan ini dengan beberapa cara tergantung pada tujuan khusus Anda.

Misalnya:

asinkronfungsiUnduh berkas(url){
menungguJanji.all (url.peta((url) => unduh (url, "file")))
};

unduhFile (url);

Deklarasikan Unduh berkas berfungsi sebagai asinkron, dan buat a Janji untuk menunggu sampai tugas tertentu selesai dengan menunggu kata kunci. Petakan url larik ke unduh fungsi dan berikan nama folder lokal—"file", dalam hal ini—untuk menyimpan file.

Mengunduh File ke Sistem File Lokal

Fungsi bawaan Node, seperti fs dan https, memudahkan untuk menulis pengunduh file. Untuk membuatnya lebih mudah, Anda dapat menggunakan modul pihak ketiga seperti unduhan.

Kedua metode memungkinkan Anda mengunduh file dari server jarak jauh dan menyimpannya ke sistem file lokal. Anda harus memilih metode terbaik untuk kebutuhan Anda dan menggunakannya dalam aplikasi Node.js Anda berikutnya.