Operasi File di NodeJS

Cover operasi file di NodeJS

Melakukan Operasi File di NodeJS

Operasi baca tulis file mungkin merupakan aktifitas yang sering dilakukan pada hampir semua aplikasi. Jadi pada materi kali ini kita coba bahas dan memberikan contoh bagaimana cara melakukan operasi file di NodeJS.

Operasi baca tulis file di NodeJS dimungkinkan dengan menggunakan modul fs sebagaimana yang dicontohkan pada materi cara upload file di NodeJS. Yang mana pada artikel tersebut kita membuat sebuah form upload berisi html untuk dibaca dan dikirim oleh server ke klien.

Apa itu Modul fs ?

(fs) adalah singkatan dari File System pada Node.js yang merupakan bagian integral platform NodeJS sehingga bisa langsung digunakan setelah menginstal NodeJS tanpa perlu melakukan instalasi modul tambahan.  

Modul fs memungkinkan kita untuk melakukan berbagai operasi terhadap file-file komputer seperti seperti membaca, menulis, memperbarui, menghapus, dan mengelola berkas. Kita juga dimungkinkan untuk mengubah hak akses atas file. Jadi modul fs ini dapat dikatakan merupakan sesuatu yang dibutuhkan dalam pengembangan aplikasi.

Beberapa aktifitas yang sering dilakukan dengan menggunakan modu fs diantaranya adalah :

  • Membaca files
  • Membuat files
  • Mengubah/Update files
  • Menghapus files
  • Mengganti nama files  

Membaca File di NodeJS

Untuk membaca file dengan modul fs di NodeJS dilakukan dengan memanggil method/fungsi readFile() dari objek fs. Untuk mudahnya mari kita coba buat sebuah file bernama halo.html dengan menggunakan teks editor yang disukai. 

<html>   <body>         <h1>Membaca File NodeJS</h1>         <p>Hi saya dibaca dari file halo.html</p> </body> </html>

Kemudian buatlah sebuah file Javascript dengan nama bacafile.js seperti pada kode berikut :
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
  fs.readFile('halo.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);
console.log("Server aktif pada port: 8080");

Apabila bacafile.js dieksekusi dengan perintah :

    node bacafile.js

maka jika browser dibuka pada halaman localhost:8080 akan muncul seperti gambar berikut :

Membaca file di NodeJS dengan modul fs



  fs.readFile('halo.html', function(err, data) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);


Perintah baca file dilakukan pada baris 4 yaitu fs.readFile() dengan mengirim parameter nama file yang akan dibaca serta fungsi callback tanpa nama untuk memproses hasil pembacaan. Jika file berhasil dibaca maka isi file akan disimpan pada variabel data dan jika terjadi kesalahan maka variabel err akan berisi objek informasi kesalahannya.

Membuat File Baru di NodeJS

Ada 3 method atau fungsi dalam File System (fs) yang dapat digunakan untuk membuat file baru, yaitu :
  1. fs.appendFile()
  2. fs.open()
  3. fs.writeFile()

Membuat File Baru di NodeJS dengan fungsi appendFile()

Fungsi / Metode appendFile() dalam objek File System digunakan untuk menambah konten ke dalam file tetapi jika file yang dituju belum ada maka akan dibuatkan file baru. Cobalah untuk menulis kode berikut dan simpan dengan nama appendfile.js kemudian eksekusi dengan menggunakan perintah : 

node appendfile.js
var fs = require('fs');

fs.appendFile('appendfile.txt', 'Konten file !', function (err) {
  if (err) throw err;
  console.log('File tersimpan !');
});

Hasil eksekusi pertama kali akan menghasilkan file dengan nama appendfile.txt yang isinya "Konten file !". Jika dieksekusi dua kali, maka isi file appendfile.txt akan ditambahkan menjadi "Konten file !Konten file !". Demikian seterusnya.

Membuat File Baru di NodeJS dengan method open()

Metode atau fungsi open() dalam objek File System menerima parameter flag untuk menentukan mode buka file. Ada cukup banyak flag yang dimungkinkan yang bisa dilihat pada tabel flag di dokumentasi NodeJS File System disini

Sekarang mari kita mencoba membuat file dengan menggunakan fungsi open(). Beri nama file tersebut dengan nama filecreate2.js   
var fs = require('fs');

fs.open('filebaru.txt', 'w', function (err, file) {
  if (err) throw err;
  console.log('File tersimpan !');
});

Jika dieksekusi dengan perintah : 

node  filecreate2.js 

maka akan dibuat sebuah file baru yang kosong. Bagaimana cara menulisnya ? berikut adalah contoh kode untuk menulis file yang dibuka atau dibuat dengan fungsi open().

Contoh kode untuk membuat dan menulis file baru dengan fungsi fs.open() di NodeJS

const fs = require('fs');

const namafile = 'filesaya.txt';
fs.open(namafile, 'w', (err, fd) => {
    if (err) {
        console.error('Gagal membuka file:', err);
        return;
    }
    
    // Bagian penulisan
    fs.write(fd, 'Halo, selamat datang !', (err) => {
        if (err) {
            console.error('File gagal ditulis:', err);
        } else {
            console.log(`File ${namafile} berhasil ditulis`);
        }

        // Fungsi close() ini untuk menutup file
        fs.close(fd, (err) => {
            if (err) {
                console.error('File gagal ditutup', err);
            }
        });
    });
});

Pada contoh kode diatas kita mencoba membuat file dengan nama filesaya.txt. Pada baris ketiga, Fungsi fs.open() dieksekusi dengan parameter namafile dan flag "w" untuk menulis. Perhatikan variabel fd (file descriptor) pada fungsi callback dari fs.open() ini.  

Pada baris 9, kita memanggil fungsi write() dengan mengirim variabel fd dan teks yang akan ditulis serta sebuah arrow function untuk menangani error.

Baris 17 kita menutup file yang baru saja dibuka dan ditulis dengan fungsi close().  

Membuat File Baru di NodeJS dengan fungsi writeFile()

Fungsi writeFile() akan mengganti isi file jika file yang dituju sudah ada. Tetapi jika file yang dituju belum ada, fungsi ini akan membuat file baru. 

Berikut adalah contoh membuat file baru di NodeJS dengan fungsi writeFile(), silahkan ditulis dan disimpan dengan nama writefile.js kemudian eksekusi dengan perintah :

node writefile.js
var fs = require('fs');

fs.writeFile('cobabuatfile.txt', 'Halo Fajrie Aradea !', function (err) {
  if (err) throw err;
  console.log('File tersimpan !');
});

Pemutakhiran / Update File di NodeJS

Update file dapat dilakukan dengan 2 cara yaitu :
  • fs.appendFile()
  • fs.writeFile()

Update file di NodeJS dengan fungsi appendFile()

Fungsi / metode appendFile() sudah dibahas sebelumnya yaitu digunakan untuk menambahkan konten pada akhir file jika file sudah ada, dan membuat file baru jika file belum ada. 

Update file di NodeJS dengan fungsi writeFile()

Fungsi / metode writeFile() dari File System digunakan untuk mengganti isi konten file yang sudah ada. Sama seperti method appendFile(), fungsi ini akan membuat file baru jika file tujuan belum ada. Berikut adalah contoh penggunaan writeFile()
var fs = require('fs');

fs.writeFile('cobatulis.txt', 'Tulisan aslinya', function (err) {
  if (err) throw err;
  console.log('Konten file diganti!');
});

Jika kode diatas dijalankan pertama kali dia akan membuat file baru dengan nama cobatulis.txt yang berisi teks "Tulisan aslinya". Cobalah sekarang ganti teks tersebut pada kode program baris kedua, kemudian jalankan lagi. Maka isi file cobatulis.txt sekarang telah berubah menjadi teks yang baru.  
Sekarang kita akan mempelajari cara menghapus file di NodeJS dengan pemanggilan metode atau fungsi unlink(). Buatlah kode berikut lalu simpan dengan ekstensi js, kemudian eksekusi dengan menggunakan node. 
var fs = require('fs');

fs.unlink('cobatulis.txt', function (err) {
  if (err) throw err;
  console.log('File berhasil dihapus!');
});

Jika file yang akan dihapus ada, maka file akan dihapus dan muncul pesan "File berhasil dihapus". Tetapi jika file tidak ditemukan maka akan muncul pesan kesalahan. 

Untuk mengganti nama file atau rename, disediakan fungsi / metode rename(). Adapun contoh penggunaannya adalah sebagai berikut. 
var fs = require('fs');

fs.rename('namafilesumber.txt', 'namafiletarget.txt', function (err) {
  if (err) throw err;
  console.log('Nama file berhasil diganti !');
});

Perlu diperhatikan bahwa : 
  • fungsi / metode rename() akan menghasilkan error kalau filesumber tidak ditemukan. 
  • fungsi rename() akan mengganti isi filetarget kalau filetarget sudah ada. Misalnya ada dua file sumber dengan nama berbeda (misal A dan B) di rename dengan nama baru yang sama misal C. Maka file C adalah hasil rename terakhir (B) tanpa menghasilkan error. 
Demikianlah beberapa operasi file di NodeJS yang sering dilakukan. Akan tetapi perlu diingat bahwa operasi terhadap file ini bergantung pada Operating System dan hak akses yang ditentukan. Bisa jadi perintah menghasilkan error karena Sistem Operasi tidak memperkenankan.   


Next Post Previous Post
No Comment
Add Comment
comment url