2011-07-07 17 views
8

ファイルを動的に生成する必要があるため、fsモジュールのwriteStreamを使用する必要があります。しかし、私は貧しいグーグルでサンプルコードを見つけることができませんでした。ごめんなさい。Node.jsのfsモジュールでファイルをダウンロードして表現する方法

具体的には、誰かがリクエストしたときに、MongoDBのデータを含むCSVファイルまたはPDFファイルを提供したいと思います。

誰でも、いくつかのヒントを教えてください。

ありがとうございました。

答えて

16

を使用してファイルのメタデータを設定することができ、私はこのように実装することができます。

app.get('/down2', function(req, res){ 
    var filename = 'data.csv'; 
    res.attachment(filename); 
    res.end('hello,world\nkeesun,hi', 'UTF-8'); //Actually, the data will be loaded form db. 
}); 

どれくらい簡単ですか。ありがとう。

+0

ファイルをディスクに保存し、dbリンクからcsvのデータを受け取り、最初にディスクに存在しない場合は 'res.attachment'を使用してファイルを送信することをお勧めします。あなたはすでにデータを持っています。単にヘッダーを設定してから 'res.send(generatedCSVcontent)'を設定するのはなぜですか? –

+0

データを一部のファイルに保存しませんでした。私はちょうどあなたが言ったようにデータを送信します。上記のファイル名は、ヘッダーを要求するためのファイル名です。実際、res.attachment()は最初の答えと非常によく似ています。ファイル名とContent-typeでヘッダーを設定するだけです。 – Whiteship

+0

うん、私の間違い –

2

あなただけの要求ハンドラにDBからデータをストリーム

、FSを必要としないあなたがexpressContent-Dispositionヘッダ

Content-Type: image/jpeg 
Content-Disposition: attachment; filename=genome.jpeg; 
    modification-date="Wed, 12 Feb 1997 16:29:51 -0500"; 
Content-Description: a complete map of the human genome 
+0

ありがとうございます。私はこのようにしよう。 – Whiteship

関連する問題