Menu
CoddyTech

Menulis file

Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 14 dari 33.

add melupakan catatan begitu program berakhir.

writeFileSync(path, text) menulis file, mengganti semua isi sebelumnya. JSON.stringify mengubah array menjadi teks JSON, dan null, 2 mengindentasinya dengan dua spasi agar mudah dibaca di Files.

import { writeFileSync } from 'node:fs';

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

File selalu berisi seluruh array: muat catatan, tambahkan satu, lalu tulis semuanya kembali. Di store.js, add adalah method dari object store. Di dalam method, this adalah object itu sendiri, jadi this.notes adalah array milik store. Mengirim array itu sendiri akan memicu error, karena file menyimpan teks.

challenge icon

Tantangan

Mudah

Langkah ini membuka proyek alat command-line notes yang telah disiapkan untuk kursus, bukan file proyekmu dari Membaca File (termasuk store.js). Pekerjaanmu sebelumnya tetap berada di pelajarannya sendiri. Baca file yang disediakan sebelum mengedit store.js. Salinan ini berisi alat notes yang membaca file.

add masih melupakan note saat program berakhir. Buat agar alat ini menyimpan setiap note ke notes.json, sehingga list menampilkannya saat dijalankan lagi.

  1. Di store.js, setelah add memasukkan note baru ke dalam array, tulis seluruh array kembali ke notes.json sebagai JSON. Tulis setiap note, bukan hanya yang baru: penulisan file mengganti semua isi yang sudah ada di dalamnya. Beri indentasi JSON sebanyak dua spasi agar mudah dibaca di Files.
  2. Di notes.js, pada percabangan add, ganti baris yang mencetak Adding: .... Sekarang, baris itu hanya mencetak Saved note , nomor note baru, dan tanda titik. Dengan dua note yang menjadi isi awal notes.json, node notes.js add Buy bread mencetak:
    Saved note 3.
    dan notes.json kemudian berisi:
    [
      "Buy milk",
      "Call Ada",
      "Buy bread"
    ]
  3. Jika tidak ada notes.json, add akan membuatnya. Setelah clear, node notes.js add Call Ada mencetak Saved note 1., lalu list menampilkan 1. Call Ada.

Coba: ketik add Buy bread di kotak setelah $ node notes.js, lalu tekan Enter. Kamu akan melihat Saved note 3.. Ketik list: Buy bread sekarang menjadi note nomor 3, meskipun ini adalah proses jalankan yang baru. Buka notes.json di Files untuk melihat array yang tersimpan. Lalu ketik clear untuk menghapus file, kemudian add Call Ada: kamu akan melihat Saved note 1..

Coba sendiri

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;

Semua pelajaran di Dasar-Dasar Node.js

Latihan sendiri: Playground Express