エクスプレスHTTPリクエストの後、ノードアプリケーションから別のサイトからファイルをダウンロードしてからファイルをダウンロードしようとしています。 私は、パイプ、ブロブなどを使用してファイルを取得する複数の方法を試みましたが、私は暗闇の中で握っています、私はいくつかの助けが必要です。コードは、私が達成しようとしているものにとあなたの洞察力のもう少しを与えるかもしれない:HTTP別のサイトからファイルを取得して、エクスプレスでダウンロードして返します。
var router = require('express').Router();
var fs = require('fs');
var http = require('http');
router.get('/download/:file', function (req, res, next) {
http.get('http://anothersite/' + req.params.file, function(response) {
res.setHeader('Content-disposition', 'attachment; filename=' + req.params.file);
res.setHeader('Content-type', 'application/octet-stream');
res.download(fs.createWriteStream(req.params.file).pipe(response));
});
});
これは私にエラー「パイプすることはできません読めませんが。」を与えます。ファイル自体は通常のファイル形式ではありません(独自の拡張機能を備えたカスタマイズされたソフトウェアのファイルです)。
何が欠けていますか?どんな洞察力にも感謝しています!あなたはHTTPでそれを行うために喜んでいる場合は、以下のように書き込み、ストリームを作成することができます
: request('http://anothersite/').pipe(fs.createWriteStream('filename.extension'))
更新:
は、あなたのようにリクエスト・ライブラリを使用することができますあなたの
こんにちはaarosilは、実際にファイルではなく[object Object]をダウンロードしたファイルに入れているようです。何かご意見は? – BelgoCanadian
こんにちは!それでも問題が解決しない場合は、 '[object Object]'を出力するコードをコピー/ペーストできますか?ありがとうございました!!! – aarosil
ダウンロードしたファイルにあります - >メモ帳でファイルを開くと、[オブジェクトオブジェクト]と表示されます。私はあなたのコードを手紙に使っています。 – BelgoCanadian