Menu
CoddyTech

Dosya Yazma

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 14 / 33.

add, program biter bitmez notu unutur.

writeFileSync(path, text) bir dosyaya yazar ve dosyada bulunan her şeyin yerine yenisini koyar. JSON.stringify bir diziyi JSON metnine dönüştürür; null, 2 ise Files'ta kolayca okunabilmesi için metni iki boşluk girintiler.

import { writeFileSync } from 'node:fs';

const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));

Dosyaya her zaman dizinin tamamı yazılır: notları yükle, bir tane ekle, hepsini geri yaz. store.js içinde add, store nesnesinin bir yöntemidir. Bir yöntemin içinde this, nesnenin kendisidir; bu nedenle this.notes, store'un dizisidir. Dizinin kendisini iletmek hata verir, çünkü bir dosya metin tutar.

challenge icon

Görev

Kolay

Bu adım, Bir Dosyayı Okuma dersindeki proje dosyalarınız yerine, kurs için hazırlanmış not komut satırı aracı projesini açar (store.js dâhil). Önceki çalışmalarınız kendi dersinde kalır. store.js dosyasını düzenlemeden önce sağlanan dosyaları okuyun. Bu kopya, dosya okuma özelliğine sahip not aracını içerir.

add program sona erdiğinde notu hâlâ unutuyor. Her notu notes.json dosyasına kaydetmesini sağlayın; böylece sonraki çalıştırmada list notu gösterir.

  1. store.js dosyasında, add yeni notu diziye ekledikten sonra dizinin tamamını JSON olarak notes.json dosyasına yazın. Yalnızca yeni notu değil, her notu yazın: bir dosyaya yazmak, dosyada bulunan her şeyin yerini alır. JSON'u iki boşluk girintili yazın; böylece Files uygulamasında okunması kolay olur.
  2. notes.js dosyasında, add dalında, Adding: ... çıktısını veren satırı değiştirin. Artık yalnızca Saved note , yeni notun numarası ve nokta yazdırılır. notes.json dosyasındaki iki notla node notes.js add Buy bread komutu şunu yazdırır:
    Saved note 3.
    ve ardından notes.json şunu içerir:
    [
      "Buy milk",
      "Call Ada",
      "Buy bread"
    ]
  3. notes.json yoksa add onu oluşturur. clear komutundan sonra node notes.js add Call Ada komutu Saved note 1. yazdırır ve list komutu ardından 1. Call Ada gösterir.

Deneyin: $ node notes.js ifadesinden sonraki kutuya add Buy bread yazıp Enter tuşuna basın. Saved note 3. çıktısını görürsünüz. list yazın: yeni bir çalıştırma olmasına rağmen Buy bread artık 3. nottur. Kaydedilen diziyi görmek için Files uygulamasında notes.json dosyasını açın. Ardından dosyayı silen clear komutunu, sonra da add Call Ada komutunu yazın: Saved note 1. çıktısını görürsünüz.

Kendin dene

import { existsSync, readFileSync } from 'node:fs';

const file = 'notes.json';

const store = {
    notes: existsSync(file) ? JSON.parse(readFileSync(file, 'utf8')) : [],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;

Node.js Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Express playground