Tutorial Node.js #5 : Cara Menggunakan Modul File System untuk Baca Tulis File

Pada tutorial sebelumnya, kita sudah mempelajari modul HTTP yang merupakan modul untuk membuat webserver dan melakukan HTTP Request. Seperti pada contoh yang telah dibuat berikut :

var http = require('http');

http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write('Hello <b>World</b>!');
    response.end();
}).listen(8000);

console.log("server running on http://localhost:8000");

Pada kode ini kita melakukan hard coding kode HTML (menulis langsung kode HTML dalam kode nodejs).

response.write('Hello <b>World</b>!');

Jika nanti ada file HTML yang ingin kita kirim sebagai balasannya, kita membutuhkan bantuan dari modul file system, dengan urutan prosesnya seperti ini :

  1. Terima request dari user
  2. Baca File HTML yang ada di server
  3. Kirim balasan ke user

Pada tahap nomer dua kita akan menggunakan modul file system.

 

Membaca File di Nodejs

Pada Node.js terdapat modul file system (fs) yang memungkinkan kita untuk mengakses file system. Modul file system sering digunakan untuk :

  • Baca file
  • Tulis file
  • Rename file
  • hapus file
  • dan sebagainya

Modul ini sudah ada di Node.js, sehingga kita tidak perlu menginstalnya melelui NPM (Node Package Manager). Untuk bisa menggunakan modul fs kita harus mengimpornya telebih dahulu dengan fungsi require().

var fs = require('fs');

Sekarang kita coba membaca file dengan modul fs, pertama silahkan buat file HTML dengan nama index.html dan sintak seperti berikut :

<!DOCTYPE html>
<html>
    <head>
        <title>Tutorial Nodejs</title>
    </head>

    <body>
        <h1>Tutorial Nodejs di agussuratna.net</h1>
        <p>Belajar Baca Tulis File di Nodejs</p>
    </body>
</html>

Lalu buat kode JavaScript baru bernama baca_file.js dengan isi sebagai berikut :

var fs = require('fs');
var http = require('http');

http.createServer(function (request, response) {
    // baca file
    fs.readFile('index.html', (err, data) => {
        if (err) throw err;
        
        // kirim respon
        response.writeHead(200, {'Content-Type': 'text/html'});
        response.write(data);
        response.end();
    });

}).listen(8000);

console.log("server running on http://localhost:8000");

Pastikan file javascript dan HTML-nya berada di dalam satu folder, setelah itu coba eksekusi baca_file.js :

node baca_file.js

Lalu buka http://localhost:8000, hasilnya :

Kita sudah berhasil membuat server Node.js dan mengirim file HTML sebagai balasannya. Perhatikan kode di atas pada bagian :

// baca file
fs.readFile('index.html', (err, data) => {
    if (err) throw err;
    
    // kirim respon
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write(data);
    response.end();
});

Method readFile() adalah method yang digunakan untuk membaca file. Method ini memiliki dua parameter :

  1. Nama file
  2. Fungsi yang akan dieksekusi saat file dibaca.
Baca Juga  Tutorial Node.js #1 : Pengenalan Dasar Node.js

Pada kode di atas, kita menggunakan arrow function :

(err, data) => { ... }

Parameter err akan berisi error ketika file gagal dibaca dan parameter data akan berisi data dari file. Karena itu, di dalam fungsi ini kita mengirimkan respon ke client dengan parameter data.

// kirim respon
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();

Maka respon yang akan diterima oleh client akan sesuai dengan isi file index.html.

 

 

Membuat File di Nodejs

Selain untuk membaca file, modul fs juga digunakan untuk membuat file baru. Terdapat beberapa method yang dapat digunakan untuk membuat file :

  • fs.appendFile() untuk membuat dan mengisi file
  • fs.open() untuk membuat, membuka, dan menulis file
  • fs.writeFile() untuk membuat dan menulis file

 

Membuat file dengan method fs.appendFile()

Pertama silahkan buat file javascript dengan nama fs_append.js dengan sintak sebagai berikut :

var fs = require('fs'); 

//create a file named filebaru1.txt 
fs.appendFile('filebaru1.txt', 'Hello dari agussuratna.net!', function (err) { 
    if (err) throw err; 
    console.log('Saved!'); 
});

Kode program di atas akan membuat file dengan nama filebaru1.txt dengan isi Hello dari agussuratna.net!.

Kita coba eksekusi, maka hasilnya :

 

Apabila kita eksekusi lagi node fs_append.js, maka isi file dari filebaru1.txt akan bertambah menjadi :

Hello dari agussuratna.net!

Jika kita mengeksekusinya sebanyak 10 kali maka teks Hello dari agussuratna.net! akan ditambahkan sebanyak 10 kali. Ini merupakan sifat dari method fs.appendFile(), method tersebut selalu menambah isi dari file pada setiap eksekusi.

 

Membuat file dengan method fs.open()

Method fs.open() memili dua fungsi, yaitu untuk membuka dan menulis file. Pertama silahkan buat file javascript baru dengan nama fs_open.js dengan sintak sebagai berikut :

var fs = require('fs');

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

Kita coba eksekusi, maka hasilnya :

Baca Juga  Tutorial Laravel #5 : Passing Data Controller Ke View

 

Fungsi fs.open() memiliki tiga parameter :

  1. Nama file
  2. Flag
  3. Fungsi yang akan dieksekusi saat file dibuka.

Pada contoh di atas, kita memberikan Flag w yang artinya write untuk memberitahu fungsi fs.open() kalau kita ingin menulis atau membuat file baru. Maka fungsi fs.open() akan membuat file kosong apabila belum ada file dengan nama yang ditentukan. Namun apabila di sana sudah ada file, fungsi fs.open() akan menimpanya. Apabila kita ingin membaca file saja, maka kita bisa berikan flag r (read).

Selain r dan w, berikut ini beberapa flags yang bisa diberikan :

  • r buka file untuk dibaca, jika file tidak ada maka akan terjadi error.
  • r+ buka file untuk dibaca dan ditulis, apabila file tidak ada maka akan terjadi error.
  • rs buka file untuk dibaca dalam mode synchronous.
  • rs+ buka file untuk dibaca dan ditulis dalam mode synchronous.
  • w buka file euntuk ditulis.
  • wx sama seperti w, tapi akan error jika sudah ada filenya.
  • w+ buka file untuk ditulis dan dibaca.
  • wx+ sama seperti w+ tapi akan error jika sudah ada filenya.
  • a buka file untuk diisi.
  • ax sama seperti a tapi akan error jika sudah ada filenya.
  • a+ buka file untuk diisi.
  • ax+ sama seperti a+ tapi akan error jika sudah ada filenya.

 

Untuk menambah pemahaman, sekarang kita coba buat program untuk menulis dan membaca file, berarti flag yang bisa digunakan adalah w+, karena kita akan menulis dulu baru membacanya.

Buatlah file baru bernama fs_open_wr.js dengan isi sebagai berikut :

var fs = require('fs');

fs.open('filebaru3.txt', 'w+', function (err, file) {
    if (err) throw err;
    
    // konten yang akan kita tulis ke file
    let content = "Hello Agus Suratna";

    // tulis konten ke file
    fs.writeFile(file, content, (err) => {
        if (err) throw err;
        console.log('Saved!');
    });

    // baca file
    fs.readFile(file, (err, data) => {
        if (err) throw err;
        console.log(data.toString('utf8'));
    });
});

Pada kode di atas, kita akan menulis ke file filebaru3.txt, terdapat dua fungsi fs yang kita gunakan :

  • fs.writeFile() untuk menulis ke file;
  • fs.readFile() untuk membaca file.
Baca Juga  Tutorial Laravel #15 : Membuat Pagination dan Pencarian

Pada fungsi fs.readFile(), kita menggunakan fungsi toString(‘utf8’) untuk mengubah buffer menjadi teks dengan encode UTF-8.

Sekarang coba eksekusi programnya :

 

hhhhhhhhhhhhhhhhhhhhhh

 

Hasilnya file berhasil ditulis dan dibaca.

 

 

Mengubah Nama File dengan Nodejs

Setelah kita mencoba membaca dan menulis file di Nodejs, berikutnya kita coba untuk mengubah nama (rename) file. Pada modul fs terdapat fungsi rename() untuk mengubah nama.

Fungsi ini memiliki tiga parameter :

  1. Nama file
  2. Nama baru
  3. Fungsi yang akan dieksekusi saat nama diubah.

Untuk mencobanya, buat file javascript baru dengan nama rename.js dan isi dengan kode berikut ini :

var fs = require('fs');

fs.rename('filebaru1.txt', 'filebaru1gantinama.txt', function (err) {
    if (err) throw err;
    console.log('File Renamed!');
});

Sekarang kita coba eksekusi programnya dan hasilnya seperti berikut :

 

 

Menghapus File dengan Nodejs

Modul fs memiliki fungsi unlink() untuk menghapus file, fungsi ini memiliki dua parameter :

  1. Nama file yang akan dihapus
  2. Fungsi yang akan dieksekusi saat file dihapus.

Untuk mencobanya, buat file baru bernama delete.js, lalu isi dengan kode berikut :

var fs = require('fs');

fs.unlink('filebaru2.txt', function (err) {
    if (err) throw err;
    console.log('File deleted!');
});

Perhatikan sintak di atas, kita akan menghapus file filebaru2.txt, sekarang kita coba eksekusi :

 

 

Kita sudah mengenal modul fs yang merupakan modul File System untuk memanipulasi file. Modul ini masih punya banyak fungsi lagi, seperti: melihat isi direktori, membuat direktori, menghapus direktori, mengubah hak akses (chmod) dan lain-lain.

Selengkapnya, kita bisa baca di dokumentasi file system nodejs. Intinya modul ini khusus untuk melakukan operasi pada file system.

Kedepan kita akan membutuhkan modul ini untuk membuat :

  • Webserver Statis
  • Fitur upload file ke server
  • Fitur generate PDF.
  • Image Processing.
  • dan lain-lain.

Demikian tutorial tentang cara menggunakan Modul File System untuk baca tulis file. Selanjutnya kita akan mempelajari tentang Membuat Webserver Statis dengan Modul URL.

Related Post

1 Trackback / Pingback

  1. Tutorial Node.js #8 : Cara Upload File di Nodejs - agussuratna.net

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy