イメージをblobとして受け入れるノードサーバー(Expressを使用)があります。私は確かにこれを外部リクエストに直接パイプします。すなわち、リクエストデータをファイルに保存して、同時に外部リクエストにパイプすることはできません
app.post('/process', function(req, res) {
req.pipe({url: '<url-to-external-server>',...},
function(err,response,body) {
//process external response.
}
);
}
これはすべて正常に機能します。今、私も同様に、データをディスクに保存したいと思いますので、私はその機能を追加し、そのコードは今のようになります。何が起こることは、ファイルが正しく保存されていないことである
app.post('/process', function(req, res) {
var filename = generateUniqueFileName();
var writeStream = fs.createWriteStream(filename);
req.pipe(writeStream);
req.pipe({url: '<url-to-external-server>',...},
function(err,response,body) {
//process external response.
var respData = processBody(
if (!error && response.statusCode == 200) {
res.send(respData);
} else {
// send error.
res.send(...);
}
}
);
}
。私はここで間違って何をしていますか?
あなた自身ではなく、ライブラリにその部分を残す必要があります。 [multer](https://github.com/expressjs/multer)はそのための良いライブラリです。 –
ルートの動作方法を変更することを提案していますが、ファイルを使用してフォームデータを取得し、ファイルを読み込んで外部リクエストにストリームしますか? – allisonh