2013-07-07 6 views
26

私はこれをGoogle検索しましたが、回答は見つかりませんでしたが、一般的な問題である必要があります。これは答えられていないNode request (read image stream - pipe back to response)と同じ質問です。Node ExpressはAPIレスポンスとして画像ファイルを送信します

イメージファイルをExpress .send()レスポンスとして送信するにはどうすればよいですか? RESTfulなURLをイメージにマップする必要がありますが、適切なヘッダーでバイナリファイルを送信するにはどうすればよいですか?例えば、

<img src='/report/378334e22/e33423222' /> 

コール...

app.get('/report/:chart_id/:user_id', function (req, res) { 
    //authenticate user_id, get chart_id obfuscated url 
    //send image binary with correct headers 
}); 
+1

どのように画像サーバ側を取得するのですか? – 7zark7

+0

ファイルパスの代わりにrequest.get – metalaureate

答えて

41

ExpressのAPIがあります。

res.sendFile

app.get('/report/:chart_id/:user_id', function (req, res) { 
    // res.sendFile(filepath); 
}); 

http://expressjs.com/en/api.html#res.sendFile

+2

を使用すると、ストリームからそれを実行できますか?たとえば、ファイルを格納していた変数をサーバーに実際に保存する必要がない場合は、 – BRogers

+3

@BRogers 'res'は書き込み可能なストリームなので、' Buffer'オブジェクトまたは 'string'を持っていれば' .write'メソッドを使ってそれをクライアントに送ることができます。 –

+0

ありがとう、私はこれを試しています。クライアントに送り返したいCSVバッファがあり、ダウンロードされたファイルとして表示されます。私はそのものでおもちゃをする必要があります。ファイルはあまり大きくないので、これを達成することを望んでいます。 – BRogers

関連する問題