Latihan buat 21 Proyek Website Skill-Sharing. Menambah fitur ke server dan client dari babnya. Konsep: fs di server, dan sinkronisasi komponen di client. Jawaban di 21 Kunci Jawaban Skill-Sharing.

21.1 Persistensi ke Disk

Kalau versi bab-nya menyimpan talk hanya di memori, restart server menghapus semuanya. Buat data talk bertahan setelah restart.

Petunjuk: setiap kali data berubah, tulis seluruh daftar talk ke file JSON (writeFile); saat server start, kalau file ada, readFile dan JSON.parse untuk mengisi state awal. Untuk aplikasi kecil, menulis tiap perubahan cukup. Konsep di 20 Node.js > Modul fs (File System) dan 21 Proyek Website Skill-Sharing > Tahan Restart.

→ Jawaban: 21 Kunci Jawaban Skill-Sharing > 21.1 Persistensi ke Disk

21.2 Field Komentar Ter-reset

Waktu talk diperbarui lewat long polling, seluruh talk digambar ulang, sehingga field komentar yang sedang diketik jadi kosong. Perbaiki supaya tidak.

Petunjuk: jangan gambar ulang komponen talk yang sudah ada dari nol. Simpan komponen per talk, dan panggil syncState-nya (yang hanya memperbarui bagian yang berubah, bukan mengganti seluruh DOM). Ini pola komponen yang sama dengan editor piksel yang menghindari menggambar ulang yang tak berubah. Konsep di 21 Proyek Website Skill-Sharing > Client dan 19 Proyek Editor Pixel Art > Komponen.

→ Jawaban: 21 Kunci Jawaban Skill-Sharing > 21.2 Field Komentar Ter-reset