ファイルへの書き込み
CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 11/24。
addはプログラムが終了するとすぐにメモを忘れてしまいます。
writeFileSync(path, text)はファイルを書き込み、そこにあった内容をすべて置き換えます。JSON.stringifyは配列をJSONテキストに変換し、null, 2は読みやすいように2つのスペースでインデントします。
import { writeFileSync } from 'node:fs';
const scores = [12, 40];
scores.push(31);
writeFileSync('scores.json', JSON.stringify(scores, null, 2));ファイルには常に配列全体が書き込まれます。メモを読み込み、1つ追加して、すべてを書き戻します。配列そのものを渡すとエラーになります。ファイルに保存できるのはテキストだからです。
チャレンジ
簡単addはメモを追加し、すべてのメモをnotes.jsonに保存します。- 新しいメモの番号とともに
Saved note 3.を出力します。
node notes.js add Buy breadを実行し、次にlistを実行して、Filesでnotes.jsonを開きます。その後、空のディスクでclearを実行してから、もう一度addを実行します。
自分で試してみよう
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;