2473

Node.js ile Sıfırdan İleri Seviye Web Geliştirme

Node.js File System

Node.js dersleri serimizin bu bölümünde File System modülü (fs) ile dosya okuma, dosyaya yazma, dosya güncelleme, dosya silme gibi görevleri nasıl ele alırız, öğrenelim.

Node.js File System

Node.js kurulumu ile birlikte gelen fs modülü dosya ile çalışmamızı sağlayacak dosya okuma, dosya oluşturma, dosya silme, dosya güncelleme gibi görevleri yerine getirebileceğimiz metotları barındırır.

File System modülünü require() ile uygulamaya dahil ediyoruz.

var fs = require('fs');

Node.js ile Dosya Okuma

Okumak istediğimiz urunler.html sayfasını app.js dosyası ile aynı dizine ekleyelim.

<html>
<body>
    <h1>Ürünler Listesi</h1>
</body>
</html>

response.send("... <h1>Ürünler Listesi<h1/> ....") ile bir html etiket grubunu gönderebiliriz ancak bu şekilde kullanım çok işlevsel olmadığından dolayı urunler.html sayfası içerisine html içeriğini ekliyoruz.

urunler.html dosyasını okumak için fs modülünden yardım almalıyız.

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

var server = http.createServer((request, response) => {
    fs.readFile('urunler.html', function(err, data) {
        response.writeHead(200, {'Content-Type': 'text/html'});
        response.write(data);
        response.end();
    });
});

fs.readFile() ile urunler.html sayfası okunur ve işlem sonucunda çağrılacak olan callback fonksiyonu ile okunan data response ile ekrana yazdırılır.

response.writeHead() ile gönderilen içeriğin bir html içeriği olduğu bildirilir. Ayrıca başarılı bir sonucu temsil eden 200 http status code tanımlanır.

Uygulamaya gelen her talep için aynı html sayfasını okuyup göndermek yerine gelen url bilgisini kontrol ederek farklı html sayfalarından içerikleri okuyarak response ile gönderebiliriz.

if(request.url == '/') {
     fs.readFile("index.html", (error, html) => {
         response.writeHead(200, {"Content-Type": "text/html"});
         response.write(html);        
         response.end();
     });        
}
else if(request.url == "/blogs") {
     fs.readFile("blogs.html", (error, html) => {
         response.writeHead(200, {"Content-Type": "text/html"});
         response.write(html);        
         response.end();
     });   
} else {
     fs.readFile("404.html", (error, html) => {
        response.writeHead(404, {"Content-Type": "text/html"});
        response.write(html);        
        response.end();
     });   
}

Node.js ile Dosya Oluşturma ve Güncelleme

Node.js ile dosya oluşturmak için aşağıdaki metotları kullanabilirsiniz.

  • fs.open()

  • fs.appendFile()

  • fs.writeFile()

fs.open() metodu ile belirtilen konumda bir dosya oluşturulur. Dosya oluşturulurken "w" parametresiyle dosyanın yazma modunda açıldığını belirtiriz.

var fs = require('fs');

fs.open('mynewfile2.txt', 'w', function (err, file) {
  if (err) throw err;
  console.log('Dosya oluşturuldu.');
});

fs.appendFile() metodu ile gönderilen bilgi dosyaya eklenir. Konumda dosya yoksa oluşturur. Mevcut dosyada bilgi varsa gönderilen string bilgi dosyaya eklenir.

var fs = require('fs');

fs.appendFile('deneme.txt', 'merhaba node.js', function (err) {
  if (err) throw err;
  console.log('Kayıt edildi.');
});

fs.writeFile() metodu ile gönderilen bilgi dosyaya kayıt edilir. Dosya konumda mevcut ise içerik eskisiyle değiştirilir.

var fs = require('fs');

fs.writeFile(deneme.txt', 'merhaba node.js', function (err) {
  if (err) throw err;
  console.log('Saved!');
});

Node.js ile Dosya Silme

fs.unlink() metoduyla belirtilen konumdaki dosya silinir.

var fs = require('fs');

fs.unlink('deneme.txt', function (err) {
  if (err) throw err;
  console.log('Dosya silindi');
});

Node.js ile Dosya İsminin Güncellenmesi

fs.rename() metoduyla belirtilen bir dosya ismini güncelleyebiliriz.

var fs = require('fs');

fs.rename('eski-dosya.txt', 'yeni-dosya.txt', function (err) {
  if (err) throw err;
  console.log('Dosya ismi güncellendi.');
});