Node.js の fs (ファイル システム) モジュールは、ファイル システムを操作するための強力なツールであり、サーバー上のファイルやディレクトリと対話できるようになります。これは Node.js に組み込まれているため、使用するために追加のものをインストールする必要はありません。 fs の仕組みとその主要な機能を見てみましょう。
fs モジュールは、標準の POSIX 関数を中心に厳密にモデル化された方法でファイル システムと対話するための API を提供します。このモジュールは、ファイルの読み取りと書き込み、ディレクトリの作成などのタスクに使用されます。
fs モジュールを使用するには、Node.js スクリプトの先頭でそれを要求する必要があります:
const fs = require('fs');
ファイルを読み取るには、主に非同期と同期の 2 つの方法があります。
このメソッドはノンブロッキングです。つまり、ファイルの読み取り中にプログラムの実行は停止しません。
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data); });
このメソッドはブロックしています。つまり、ファイルが読み取られるまでプログラムの実行が停止します。
try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); }
ファイルの読み取りと同様に、書き込みも非同期または同期で実行できます。
fs.writeFile('example.txt', 'Hello, World!', (err) => { if (err) { console.error(err); return; } console.log('File has been saved!'); });
try { fs.writeFileSync('example.txt', 'Hello, World!'); console.log('File has been saved!'); } catch (err) { console.error(err); }
既存のファイルにコンテンツを上書きせずに追加する場合は、appendFile メソッドを使用します。
fs.appendFile('example.txt', '\nAppended Content', (err) => { if (err) { console.error(err); return; } console.log('Content has been appended!'); });
try { fs.appendFileSync('example.txt', '\nAppended Content'); console.log('Content has been appended!'); } catch (err) { console.error(err); }
ファイルを削除するには、unlink メソッドを使用します。
fs.unlink('example.txt', (err) => { if (err) { console.error(err); return; } console.log('File deleted!'); });
try { fs.unlinkSync('example.txt'); console.log('File deleted!'); } catch (err) { console.error(err); }
fs.mkdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory created!'); });
fs.readdir('newDir', (err, files) => { if (err) { console.error(err); return; } console.log('Files in directory:', files); });
fs.rmdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory deleted!'); });
fs.watch メソッドを使用してファイル内の変更を監視できます:
fs.watch('example.txt', (eventType, filename) => { if (filename) { console.log(`${filename} file Changed!`); } });
Node.js は、メモリに収まらない可能性のある大きなファイルを処理するための fs ストリームを提供します。
const readStream = fs.createReadStream('example.txt', 'utf8'); readStream.on('data', (chunk) => { console.log(chunk); });
const writeStream = fs.createWriteStream('example.txt'); writeStream.write('Hello, '); writeStream.write('World!'); writeStream.end();
Node.js はファイルをコピーするための簡単な方法を提供します:
fs.copyFile('source.txt', 'destination.txt', (err) => { if (err) { console.error(err); return; } console.log('File copied successfully!'); });
fs モジュールには Promise ベースのメソッドもあり、async/await などの最新の JavaScript 機能を簡単に操作できるようになります。
const fsPromises = require('fs').promises; async function readFile() { try { const data = await fsPromises.readFile('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
fs モジュールは多用途であり、ファイル システムと対話する必要がある Node.js アプリケーションにとって不可欠です。そのさまざまな方法を理解し、ストリームを効率的に処理し、ベスト プラクティスを採用することで、Node.js でのファイル操作を効果的かつ安全に管理できるようになります。
fs モジュールの最新情報と追加機能については、必ず公式 Node.js ドキュメントを参照してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3