Node.js ファイルシステム (fs モジュール)
このトピックを終えると
Node.js でファイルを読み書き、削除するコードを作成できるようになります。
ブラウザではできないこと
ブラウザの JavaScript は、セキュリティ上の理由から、自分のコンピューターのファイルにアクセスできません。しかし、Node.js はサーバー環境であるため、ファイルを自由に読み書きできます。 この機能を提供するのが fs (File System) モジュールです。
javascript
// fs モジュールを読み込む
const fs = require("fs");
// ファイルを読み込む (同期方式 — 読み込むまで停止)
const data = fs.readFileSync("memo.txt", "utf8");
console.log(data);require("fs") は、Node.js に組み込まれているモジュールを読み込む方法です。別途インストールする必要はありません。 "utf8" を省略すると、Buffer (バイナリデータ) が返され、文字の代わりに数字が表示されます。
ファイルの書き込みと追加
javascript
const fs = require("fs");
// ファイルを書き込む — ファイルが存在しない場合は作成、存在する場合は上書き
fs.writeFileSync("output.txt", "最初の行\n");
// ファイルに内容を追加する (上書きしない)
fs.appendFileSync("output.txt", "2 番目の行\n");
// 確認
const result = fs.readFileSync("output.txt", "utf8");
console.log(result);
// 最初の行
// 2 番目の行writeFileSync は、既存の内容を 完全に上書きします。 既存の内容を維持しながら追加するには、appendFileSync を使用します。
ファイルの存在確認と削除
javascript
const fs = require("fs");
// ファイルの存在を確認
if (fs.existsSync("output.txt")) {
console.log("ファイルが存在します");
// ファイルを削除
fs.unlinkSync("output.txt");
console.log("削除完了");
}
// ディレクトリ (フォルダー) を作成
if (!fs.existsSync("logs")) {
fs.mkdirSync("logs");
}
// ディレクトリ内のファイルリスト
const files = fs.readdirSync(".");
console.log(files); // ["index.js", "logs", ...]ここで使用したメソッドはすべて Sync (同期) が付いています。ファイル操作が完了するまで、次のコードは実行されません。実際のサーバーでは、非同期バージョン (readFile, writeFile — Sync なし) を使用します。これは、同期 vs 非同期 で説明します。