ホームページ >ウェブフロントエンド >フロントエンドQ&A >Nodejsでファイルをダウンロードする方法
Node.js では、node-fetch モジュールと fs モジュールを使用してファイルをダウンロードできます。これら 2 つのモジュールを使用してファイルをダウンロードする方法は次のとおりです。
まず、node-fetch モジュールと fs モジュールをインストールする必要があります。 npm コマンドを使用してインストールできます。
npm install node-fetch fs
インストールが完了したら、これら 2 つのモジュールを使用できます。
ファイルをダウンロードするプロセスは、いくつかのステップに分けることができます。
次は、ファイルをダウンロードするためのサンプル コードです:
const fetch = require('node-fetch'); const fs = require('fs'); const downloadFile = async (url, dest) => { const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileStream = fs.createWriteStream(dest); await new Promise((resolve, reject) => { response.body.pipe(fileStream); response.body.on("error", (err) => { reject(err); }); fileStream.on("finish", function() { resolve(); }); }); }; const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; downloadFile(fileUrl, destPath) .then(() => { console.log('file downloaded successfully'); }) .catch((err) => { console.error('failed to download file:', err); });
このコードは、まずノードフェッチ モジュールを使用して HTTP リクエストを送信し、ファイル データを取得します。 fs モジュールを使用してデータをファイルに書き込みます。ファイルデータの取得処理中に、HTTP レスポンスのステータスコードが 200 であるかどうかを確認する必要があることに注意してください。そうでない場合は、ダウンロードは失敗しています。
コードでは、async/await 非同期構文と Promise オブジェクトを使用して、結果が出力される前にファイル データが書き込まれるようにします。
上記のサンプル コードは、ファイルをダウンロードする簡単な例にすぎません。さらに多くのオプションや機能が必要な場合は、他のパラメーターを使用してコードを調整できます。
node-fetch の headers パラメーターを使用して、HTTP リクエスト ヘッダーを指定できます。例:
const headers = { 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' }; const response = await fetch(url, { headers: headers });
ダウンロード速度を制限する必要がある場合は、サードパーティ モジュールのスピードラインを使用できます。例:
const speedline = require('speedline'); const fileUrl = 'https://example.com/files/file.txt'; const destPath = 'file.txt'; const maxSpeed = 100; // 100 KB/s const response = await fetch(fileUrl); const stream = response.body; const fileStream = fs.createWriteStream(destPath); await speedline(stream.pipe(fileStream), maxSpeed);
キャッシュが必要な場合 ファイルをダウンロードするには、サードパーティ モジュールのノード キャッシュを使用できます。例:
const NodeCache = require('node-cache'); const fileCache = new NodeCache(); const downloadFile = async (url, dest) => { const cachedData = fileCache.get(url); if (cachedData) { return fs.writeFileSync(dest, cachedData); } const response = await fetch(url); if (!response.ok) { throw new Error(`failed to download file: ${response.statusText}`); } const fileData = await response.text(); fileCache.set(url, fileData); fs.writeFileSync(dest, fileData); };
上記は、ファイルをダウンロードするための基礎知識とサンプル コードです。 Node.jsを使用して。実際のニーズとネットワーク環境に応じて、ファイルのダウンロードに適したパラメータと方法を選択できます。
以上がNodejsでファイルをダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。