4

基本的にプロキシである高速 Web アプリ ルートを作成しました。これは、入力ストリーム (zip ファイル) の内容をサーバー応答の出力ストリームにパイプします。

ブラウザがユーザーにダウンロードを促すプロンプトを表示するか、zip ファイルに最も適したものを表示したいと思います。ただし、このルートをブラウザーにロードすると、入力ストリームの内容 (zip ファイルの内容) が、ダウンロードを促すのではなく、テキストとしてブラウザー ウィンドウに表示されます。l

これは、応答を送信するコードです。

    res.statusCode = 200;
    res.setHeader ('Content-Length', size);
    res.setHeader ('Content-Type', 'application/zip');

    console.log ("content-type is " + res.header('Content-Type'));

    inputStream.pipe (res); 

上記の console.log ステートメントは、「content-type is application/zip」を出力します。

しかし、Chrome のネットワーク タブでリクエストを調べると、レスポンスのコンテンツ タイプが「application/json」であることがわかります。これは、express またはその他の何かが私の content-type ヘッダーをオーバーライドしているか、おそらく既に送信していることを意味します。

私のコンテンツタイプを変更しているものと、コンテンツタイプが設定したものであることを確認する方法を知っている人はいますか?

助けてくれてありがとう。

4

1 に答える 1

0

ミドルウェアの順序を確認する必要があります。これは非常にトリッキーであり、正しい順序であると混乱する可能性があります。Connect Webページで正しい順序を確認できます

于 2013-02-04T14:43:09.260 に答える