Node.js untuk pemula: dasar-dasar bekerja dengan file

Hari ini kita akan berbicara tentang cara bekerja dengan sistem file menggunakan Node.js, pertimbangkan operasi dasar yang dilakukan dengan file. Operasi tersebut meliputi:

  • Pembuatan file
  • Baca file
  • Menulis data ke file
  • Penghapusan file
  • Ganti nama file

Kebutuhan untuk melakukan operasi semacam itu muncul dalam berbagai situasi.



Modul fs


Node.js memiliki modul standar, fs (kependekan dari File System), yang memberikan alat pengembang untuk bekerja dengan sistem file. Anda dapat mengimpornya ke proyek sebagai berikut:

 var fs = require('fs'); 

Metode modul ini disajikan dalam bentuk sinkron dan asinkron. Fungsi panggilan balik yang dilewatkan ke metode asinkron menerima objek kesalahan sebagai parameter pertama, dan data dikembalikan ketika operasi berhasil sebagai parameter kedua. Pertimbangkan sebuah contoh:

 function fileHandler(){   fs.readFile('textFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log(data);   }); } 

Metode .readFile() , yang akan kita bicarakan lebih lanjut, dimaksudkan untuk membaca file. Dalam contoh ini, fungsi panggilan balik memiliki dua parameter - err dan data . Kesalahan yang mungkin terjadi ketika mencoba membaca file jatuh ke dalam parameter pertama, data yang diperoleh setelah operasi yang sukses berada di parameter kedua. Perhatikan bahwa .readFile() adalah metode asinkron dari modul fs . Versi .readFileSync() disebut .readFileSync() . Pendekatan serupa digunakan untuk memberi nama metode modul lainnya.

Buat file baru


Mari kita mulai dengan sebuah contoh:

 function fileHandler(){   fs.open('testFile.txt', 'w', (err) => {       if(err) throw err;       console.log('File created');   });  } 

Di sini metode fs.open() digunakan untuk membuat file baru. Dibutuhkan nama file sebagai argumen pertama. Argumen keduanya adalah bendera yang memberi tahu sistem apa yang ingin kita lakukan dengan file. Dalam hal ini, ini adalah flag w (kependekan dari tulisan), yang menunjukkan bahwa kami ingin membuka file untuk ditulis. Metode .open() dapat menerima berbagai flag. Inilah beberapa di antaranya:

  1. r : buka file untuk dibaca
  2. r+ : buka file untuk membaca dan menulis
  3. rs : buka file untuk dibaca dalam mode sinkron
  4. w : buka file untuk menulis
  5. a : buka file untuk menulis data ke akhir file
  6. a+ : buka file untuk membaca dan menulis data di akhir file

Sekarang, sebelum beralih ke contoh berikutnya, kita akan mengedit file testFile.txt baru saja dibuat menggunakan semacam editor teks. Tambahkan teks berikut ke dalamnya:

 This is a test file. We're learning about Node.js File System. The End. 

Menulis data ke file


Mari kita bicara tentang cara menambahkan sesuatu ke file:

 function fileHandler(){   fs.appendFile('testFile.txt', ' This line is beyond the end.', (err) => {       if(err) throw err;       console.log('Data has been added!');   }); } 

Di sini kita menggunakan metode .appendFile() untuk menambahkan data ke akhir file yang ada. Sebagai argumen pertama, metode ini menerima nama file, sebagai yang kedua - data yang perlu ditambahkan ke akhir file. Argumen ketiga adalah, seperti biasa, fungsi panggilan balik.

Setelah kode yang ditunjukkan di atas berhasil dijalankan, isi file akan terlihat seperti ini:

 This is a test file. We're learning about Node.js File System. The End. This line is beyond the end. 

Ada cara lain untuk menulis data ke file. Ini menyiratkan penggunaan metode .writeFile() . Metode ini sangat mirip dengan .appendFile() , tetapi memiliki satu perbedaan penting. Faktanya adalah bahwa menggunakan metode .appendFile() , kami menambahkan data baru ke file setelah data yang sudah ada di dalamnya. Dan ketika menggunakan metode .writeFile() , isi file diganti dengan yang baru. Mari kita coba metode ini:

 function fileHandler(){   fs.writeFile('testFile.txt', "I'm the replacement you've been looking for.", (err) => {       if(err) throw err;       console.log('Data has been replaced!');   }); } 

Setelah operasi berhasil, file akan berisi teks berikut:

 I'm the replacement you've been looking for. 

Seperti yang Anda lihat, konten file sepenuhnya diganti dengan yang baru.

Baca file


Untuk membaca file, modul fs menyediakan metode .readFile() , contoh penggunaan yang sudah kita lihat. Dibutuhkan nama file sebagai parameter pertama, dan pengodean sebagai yang kedua. Parameter ketiga adalah fungsi callback. Mari kita coba mencetak konten file testFile.txt ke konsol menggunakan metode ini:

 function fileHandler(){   fs.readFile('testFile.txt', 'utf8', (err, data) => {       if(err) throw err;       console.log('--------- [File Data] ---------');       console.log(data);       console.log('--------- [File Data] ---------');   }); } 

Itu yang kita dapatkan.


File output data ke konsol

Sekarang mari kita bicara tentang mengganti nama file.

Ganti nama file


Untuk mengganti nama file, gunakan metode .rename() :

 function fileHandler(){   fs.rename('testFile.txt', 'newTestFile.txt', (err) => {       if(err) throw err;       console.log('File renamed successfully!');   }); } 

Argumen pertama dari metode ini adalah nama file yang ada, yang kedua adalah nama baru file ini. Setelah panggilan berhasil ke metode ini, file testFile.txt berubah menjadi newTestFile.txt .

Penghapusan file


Untuk menghapus file, gunakan metode .unlink() :

 function fileHandler(){   fs.unlink('newTestFile.txt', (err) => {       if(err) throw err;       console.log('File deleted successfully!');   }); } 

Panggilan yang berhasil ke metode ini menghapus file newTestFile.txt .

Ringkasan


Pada artikel ini, kami memeriksa dasar-dasar bekerja dengan sistem file di Node.js. Jika Anda ingin menguasai topik ini lebih dalam, lihat materi ini dari siklus publikasi Node.js, baca dokumentasi untuk modul fs , dan cobalah untuk mencoba semua yang Anda pelajari dalam praktik.

Pembaca yang budiman! Apakah Anda menggunakan modul fs standar atau yang lain untuk bekerja dengan file di Node.js?

Source: https://habr.com/ru/post/id452566/


All Articles