目次
Express を使用した Node.js サーバーからのファイルのダウンロード
ヘッダーの設定
非同期ファイル ストリーミング
改善されたソリューション
従来のソリューション
ホームページ ウェブフロントエンド jsチュートリアル Express を使用して Node.js サーバーからファイルをダウンロードするにはどうすればよいですか?

Express を使用して Node.js サーバーからファイルをダウンロードするにはどうすればよいですか?

Dec 04, 2024 pm 09:25 PM

How Do I Download Files from a Node.js Server Using Express?

Express を使用した Node.js サーバーからのファイルのダウンロード

Node.js の Express フレームワークは、サーバーからクライアントにファイルをダウンロードする便利な方法を提供します。これを容易にするには、次の手順に従います。

ヘッダーの設定

ファイルを送信するときは、ファイル名や種類などの重要な情報をクライアントに提供するために、正しい HTTP ヘッダーを設定することが重要です。

  • Content-disposition: このヘッダーを「attachment;」に設定します。ファイル名=<ファイル名>'クライアントから見えるファイル名を指定します。
  • Content-type: 「video/quicktime」など、ダウンロードされるファイルのタイプを示します。

非同期ファイル ストリーミング

パフォーマンスを向上させるには、ファイル全体を読み取るのではなく、ファイル ストリームを使用してデータを送信します。同期的に。このアプローチにより、潜在的な遅延やメモリの問題が最小限に抑えられます。

改善されたソリューション

Express には、ファイル ダウンロード用の組み込み関数が含まれるようになりました。

app.get('/download', function(req, res) {
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Sets the appropriate headers and streams the file.
});
ログイン後にコピー

従来のソリューション

Express の組み込みダウンロード機能の前に、次のコードはより包括的なファイルのダウンロードを提供しますソリューション:

var path = require('path');
var mime = require('mime');
var fs = require('fs');

app.get('/download', function(req, res) {

  var file = __dirname + '/upload-folder/dramaticpenguin.MOV';

  var filename = path.basename(file);
  var mimetype = mime.getType(file);

  res.setHeader('Content-disposition', 'attachment; filename=' + filename);
  res.setHeader('Content-type', mimetype);

  var filestream = fs.createReadStream(file);
  filestream.pipe(res);
});
ログイン後にコピー

このソリューションには以下が含まれます:

  • path.basename を使用したファイルとファイル名の抽出
  • node-mime を使用したコンテンツ タイプの決定
  • 効率的なファイルストリーミングfs.createReadStream.

これらの手法に従うことで、Express 経由で Node.js サーバーからファイルを効果的にダウンロードでき、クライアントがダウンロードされたコンテンツを正しく受信して認識できるようになります。

以上がExpress を使用して Node.js サーバーからファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JavaScriptの文字列文字を交換します JavaScriptの文字列文字を交換します Mar 11, 2025 am 12:07 AM

JavaScriptの文字列文字を交換します

jQuery日付が有効かどうかを確認します jQuery日付が有効かどうかを確認します Mar 01, 2025 am 08:51 AM

jQuery日付が有効かどうかを確認します

jQueryは要素のパディング/マージンを取得します jQueryは要素のパディング/マージンを取得します Mar 01, 2025 am 08:53 AM

jQueryは要素のパディング/マージンを取得します

10 jQuery Accordionsタブ 10 jQuery Accordionsタブ Mar 01, 2025 am 01:34 AM

10 jQuery Accordionsタブ

10 jqueryプラグインをチェックする価値があります 10 jqueryプラグインをチェックする価値があります Mar 01, 2025 am 01:29 AM

10 jqueryプラグインをチェックする価値があります

ノードとHTTPコンソールを使用したHTTPデバッグ ノードとHTTPコンソールを使用したHTTPデバッグ Mar 01, 2025 am 01:37 AM

ノードとHTTPコンソールを使用したHTTPデバッグ

カスタムGoogle検索APIセットアップチュートリアル カスタムGoogle検索APIセットアップチュートリアル Mar 04, 2025 am 01:06 AM

カスタムGoogle検索APIセットアップチュートリアル

jQueryはscrollbarをdivに追加します jQueryはscrollbarをdivに追加します Mar 01, 2025 am 01:30 AM

jQueryはscrollbarをdivに追加します

See all articles