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:
r
: buka file untuk dibacar+
: buka file untuk membaca dan menulisrs
: buka file untuk dibaca dalam mode sinkronw
: buka file untuk menulisa
: buka file untuk menulis data ke akhir filea+
: 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 konsolSekarang 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?
