Pada artikel kali ini kita akan membahas pemrosesan file menggunakan modul file system ( fs ) pada pemrograman Nodejs. Modul ini sudah tersedia di Nodejs, jadi kita tidak perlu menginstalnya melalui NPM (Node Package Manager).
Modul File System atau yang disingkat dengan (fs) merupakan modul pada nodejs yang berguna untuk menangani komunikasi antara nodejs dengan berbagai file seperti file txt, file html dan lain-lain.
Hanya dengan satu modul modile file system (fs) nodejs, kita dapat melakukan pemrosesan file yang meliputi banyak hal. antara lain :
- Membaca sebuah file
- Menulis sebuah file
- Delete file
- Mengubah nama file
- Dan sebagainya.
Membaca File di Nodejs
Untuk bisa menggunakan modul file system nodejs ini, kita harus mengimpornya telebih dahulu dengan fungsi require().
var fs = require('fs');
Sebagai contoh, kita akan mencoba membaca file dengan modul fs.
1. Pertama buat file HTML dengan nama index.html dan isi kode sebagai berikut:
<!DOCTYPE html>
<html>
<head>
<h1>Tutorial Nodejs</h1>
</head>
<body>
<h2>Belajar Nodejs di Praktekotodidak.com</h2>
<p> Membaca File di Nodejs</p>
</body>
</html>
2. Setelah itu buat juga file javacript baru bernama baca.js dengan isi kode 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");
3. Tempatkan file javascript dan HTML tersebut dalam satu folder.
4. Setelah itu, coba eksekusi baca_file.js di command line dengan perintah dibawah ini :
node baca.js
5. Terakhir buka http://localhost:8000 di browser
Seperti pada contoh diatas, maka kita sudah berhasil membuat server Nodejs serta mengirim file HTML
Keterangan :
readFile() adalah method yang digunakan untuk membaca file. Lalu method ini memiliki dua parameter:
‘index.html’, Merupakan nama file yang akan dieksekusi saat file dibaca.
err merupakan sebuah parameter yang mana err akan berisi error jika file gagal dibaca
data merupakan parameter yang akan berisi data dari file.
=> merupakan sebuah fungsi yang menggunakan arrow function:
Perhatikan kode dibawah :
// kirim respon
response.writeHead(200, {'Content-Type': 'text/html'});
response.write(data);
response.end();
Keterangan :
Fungsi untuk mengirim respon kepada client dengan parameter data, sehingga respon yang akan diterima oleh client akan sesuai dengan isi file index.html.
Method dalam Membuat File baru di Nodejs
Selain untuk membaca file, modul file system (fs) pada nodejs juga digunakan untuk membuat file baru. Ada beberapa fungsi atau method yang dapat kita gunakan untuk membuat file, yaitu :
- fs.appendFile() untuk membuat dan mengisi file;
- fs.open() untuk membuat, membuka, dan menulis file;
- fs.writeFile() untuk membuat dan menulis file.
Mari kita coba satu per satu.
fungsi fs.appendFile
1. Buat file javascript dengan nama append.js dengan isi sebagai berikut:
var fs = require('fs');
//Membuat sebuah file dengan nama myfile.txt
fs.appendFile('myfile.txt', 'Selamat datang di praktekotodidak.com!', function (err) {
if (err) throw err;
console.log('Saved!');
});
Kode program di atas akan membuat file dengan nama ‘myfile.txt’ dengan isi Selamat datang di praktekotodidak.com!.
Contoh :
Buka command line atau CMD lalu kita eksekusi dengan perintah :
node append.js
File dari myfile.txt sudah dibuat dengan isi ”Selamat datang di praktekotodidak.com!”
Jika kita mengeksekusinya sebanyak 3 kali maka teks ”Selamat datang di praktekotodidak.com!” akan bertambah sebanyak 3 kali juga. method fs.appendFile() akan selalu menambah isi dari file tersebut disetiap dieksekusi.
fungsi fs.open()
fs.open() memiliki dua fungsi, yaitu untuk membuka dan menulis file. Selain itu, Fungsi fs.open() memiliki tiga parameter: Nama file, Flag, dan Fungsi yang akan dieksekusi saat file dibuka.
Contoh :
1. Buatlah file javascript baru dengan nama open.js dengan kode sebagai berikut:
var fs = require('fs');
fs.open('myfile2.txt', 'w', function (err, file) {
if (err) throw err;
console.log('Saved!');
});
Keterangan :
Kita memberikan Flag W untuk mengirimkan info fungsi fs.open() kalau kita ingin menulis atau membuat file baru.
fs.open() akan membuat file kosong jika belum ada file dengan nama yang ditentukan. Jika di sudah terdapat file, maka fungsi ini akan menindihnya.
Lalu coba eksekusi seperti gambar dibawah ini :
Jika kita ingin membaca file saja, maka kita bisa berikan flag r (read).
Selain r dan w, berikut ini beberapa flags yang bisa diberikan:
- r membuka file agar untuk dibaca. Jika file tersebut tidak ada maka akan terjadi error.
- r+ membuka 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.
fungsi fs.writeFile
fungsi fs.writeFile untuk membuat dan menulis file. Sebagai contoh kita akan menulis dan membaca sebuah file dengan menggunakan flag w+, karena kita akan menulis dulu baru membacanya.
Contoh :
1. Buatlah file javascript bernama write.js dengan isi sebagai berikut:
var fs = require('fs');
fs.open('myfile2.txt', 'w+', function (err, file) {
if (err) throw err;
// kontent yang akan kita tulis ke file
let content = "Selamat datang di praktekotodidak.com!";
// 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'));
});
});
Keterangan :
fs.writeFile() untuk menulis ke file;
fs.readFile() untuk membaca file.
toString(‘utf8’) untuk mengubah buffer menjadi teks dengan encode UTF-8.
Sekarang coba eksekusi programnya:
file yang bernama myfile2 yang awalnya tidak ada isi sudah berhasil ditulis dengan teks “Selamat datang di praktekotodidak.com!”, setelah itu baru dapat dibaca dengan membuka ulang file tersebut.
Mengubah Nama File dengan Nodejs
Pada modul file system nodejs juga terdapat fungsi rename() yang berguna untuk mengubah nama (rename) file. Fungsi ini juga memiliki tiga parameter:
- Nama file;
- Nama baru;
- Fungsi yang akan dieksekusi saat nama diubah.
Contoh :
Buatlah file javascript dengan nama rename.js dan isi dengan kode berikut ini:
var fs = require('fs');
fs.rename('myfile.txt', 'renamedfile.txt', function (err) {
if (err) throw err;
console.log('File Renamed!');
});
Setelah itu lakukan eksekusi programnya seperti contoh dibawah ini :
Setelah program dieksekusi, maka nama file yang semula adalah ”myfile” kini sudah berubah menjadi ”renamedfile”.
Menghapus File dengan Nodejs
Untuk menghapus file menggunakan modul file system (fs) di nodejs, kita menggunakan fungsi unlink(). Fungsi ini memiliki dua parameter:
- Nama file yang akan dihapus;
- fungsi yang akan dieksekusi saat file dihapus.
Contoh :
Buatlah file baru bernama delete.js, lalu isi dengan kode dibawah ini :
var fs = require('fs');
fs.unlink('myfile2.txt', function (err) {
if (err) throw err;
console.log('File deleted!');
});
Setelah itu lakukan eksekusi programnya seperti contoh dibawah ini :
Pada kode program di atas, terlihat bahwa file myfile2.txt sudah terhapus.
Begitulah pembahasan tentang modul file system (fs) pada nodejs, silahkan dibaca juga artikel selanjutnya yaitu : Belajar Nodejs 7# Menggunakan Modul URL Membuat Webserver Statis