Menu
CoddyTech

Dosya Okuma

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

Her çalıştırma, yalnızca bellekte tutuldukları için aynı üç notla başlar.

readFileSync(path, 'utf8'), node:fs içinden bir dosyayı dize olarak okur. Bir not dosyası, JavaScript dizileri ve nesneleri gibi yazılan bir veri metin biçimi olan JSON içerir ve JSON.parse bu metni bir diziye dönüştürür. Var olmayan bir dosyayı okumak ENOENT hatası fırlatır; bu yüzden önce existsSync ile kontrol et. Örnekte, koşul doğru olduğunda a, yanlış olduğunda b değerini veren condition ? a : b kullanılır.

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

const scores = existsSync('scores.json')
    ? JSON.parse(readFileSync('scores.json', 'utf8'))
    : [];
console.log(scores.length);

'utf8' olmadan dize yerine, dosyanın ham baytları olan bir Buffer elde edersin.

challenge icon

Görev

Kolay

Bu adım, CommonJS Modules içindeki proje dosyaların ( legacy/stats.cjs dâhil) yerine, kurs için hazırlanmış komut satırı aracı projesini açar. Önceki çalışmaların kendi dersinde kalır. store.js dosyasını düzenlemeden önce sağlanan dosyaları oku. Bu kopya, şimdiye kadarki tüm komutların yanı sıra yeni bir clear komutunu da içerir.

Şu anda her çalıştırma, store.js dosyasında yazılı aynı üç notla başlar. Notların bunun yerine bir dosyadan gelmeli: Files uygulamasında açabileceğin notes.json dosyasından.

  1. store.js içinde, sabit üç notluk listeyi değiştir. Depodaki notes, notes.json dosyasına kaydedilmiş diziyi içermeli: dosyayı metin olarak oku, ardından JSON metnini bir diziye dönüştür.
  2. notes.json yoksa depo, hata vererek durmak yerine boş bir diziyle başlamalı. Dosyayı okumadan önce mevcut olup olmadığını kontrol et.

notes.json iki notla başlar, bu nedenle node notes.js list şunu yazdırır:

Notes for you
1. Buy milk
2. Call Ada

notes.json olmadığında şunu yazdırır:

Notes for you
No notes yet

Yalnızca store.js dosyasını değiştir. Depo boş olduğunda notes.js zaten No notes yet yazdırır.

Dene: $ node notes.js sonrasındaki kutuya list yaz ve Enter tuşuna bas. Dosyadaki iki notu görürsün. Ardından clear yaz. Bu komut zaten notes.js içinde: notes.json dosyasını siler ve Deleted notes.json yazdırır. Tekrar list yaz: No notes yet görürsün. “Kontrol et”e basmadan önce, kontrollerin ihtiyaç duyduğu notes.json dosyasını geri getirmek için Dosyaları sıfırla'ya bas.

Kendin dene

// Notları bu liste yerine notes.json dosyasından yükle.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Express playground