Node.js をマスターするための 30 日間の旅の一環として、今日私はバックエンド開発の中核の 1 つであるファイルとストリームの操作に取り組みました。私は JavaScript についてはすでにしっかりと理解していましたが、Node.js の世界ではまったく新しいツールと概念のセットが導入されています。 5日目に学んだことは次のとおりです。
この日は、fs (ファイル システム) モジュールの紹介から始まりました。このモジュールは Node.js に不可欠であり、ファイル システムと直接対話できるようになります。 fs を使用すると、ファイルとディレクトリの読み取り、書き込み、削除、管理が簡単にできることがわかりました。
私にとって特に印象に残ったのは、これらの操作の多くが非同期であるという点です。 Node.js はメインスレッドをブロックせずにファイル操作を処理するため、非常に効率的です。たとえば、 fs.readFile() を使用すると、コードの残りの実行を一時停止せずにファイルを読み取ることができます。これがどのように見えるかのスニペットです:
const fs = require('fs'); fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); });
これは、特にパフォーマンスとノンブロッキング操作が重要な環境において、ファイルを処理するためのシンプルかつ強力な方法です。
次はストリームモジュールです。この概念は私にとって新しいものでしたが、すぐにその価値がわかりました。 Node.js のストリームを使用すると、データを段階的に操作できるため、大きなファイルの処理に最適です。ファイル全体をメモリにロードする代わりに、ファイルを部分的に処理できます。
さまざまな種類のストリーム (読み取り可能、書き込み可能、二重、変換) について学びました。 Readable ストリームと Writable ストリームが今日のタスクに最も関連していました。これらを使用して、システムのメモリを圧迫することなく、あるファイルからデータを読み取り、別のファイルにデータを書き込みました。
これは、ストリームを使用してあるファイルの内容を別のファイルにコピーする方法の例です:
const fs = require('fs'); // Create a read stream for the source file const readStream = fs.createReadStream('source.txt'); // Create a write stream for the destination file const writeStream = fs.createWriteStream('destination.txt'); // Pipe the read stream to the write stream to transfer data readStream.pipe(writeStream); writeStream.on('finish', () => { console.log('File copied successfully!'); });
このコードは、ストリームのシンプルさと強力さを強調しています。 Pipe() メソッドは、2 つのストリームをシームレスに接続し、データ転送を簡単かつ効率的にするため、私にとっては驚きでした。
理論を理解した後、ストリームを使用したファイル コピーの実装という独立したタスクに取り組みました。これは私の理解を確実にするための素晴らしい方法でした。
source.txt というファイルを作成し、学んだスキルを使ってその内容を destination.txt にコピーしました。また、ファイルが見つからないなどの状況をプログラムが確実に処理できるようにするために、エラー処理も追加しました。この演習では、Node.js でファイル操作を効率的に管理する際のストリームの重要性を強調しました。
5日目は目を見張るものがありました。 Node.js がファイル操作を処理する方法と、大きなファイルを管理する際のストリームの重要性について、より深く理解できるようになりました。この知識は、Node.js をマスターする旅を続ける上で間違いなく役立ちます。
先に進むにつれて、これらの概念がより高度なトピックとどのように統合されるかを見るのが楽しみです。 AI の助けを借りて 30 日間で Node.js を学習し続けるので、さらなる洞察に注目してください!
ChatGPT によって作成されたすべてのレッスンは、https://king-tri-ton.github.io/learn-nodejs
で見つけることができます。免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3