私のAPI(nodejs)から、httpを使用してファイルをダウンロードするサードパーティのAPIにアクセスしています。 サービスは、より大きなファイルを処理できるように、小さな部分に細断されたBase64文字列を返します。http nodejsを使用したチャンクベース64文字列
第三者サービスからの応答がなくなるまで、応答として各部分をブラウザに送信して、サードパーティサービスに複数のhttp要求(ループ?)を行うことはできますか?
私がこれをやりたい理由は、ノードサーバー上の多くのメモリを消費したくないからです。
私はそれらの部分をブラウザに戻します。
これを行う方法に関するご提案はありますか? 下記の私の現在のコードを見てください。
var request = require('request');
router.post('/getfiledata', function(req, res) {
var fileid = req.body.fileid;
var token = req.headers.authorization;
getFileData(req, res, dbconfig, fileid, token, function(err, chunkOfFile) {
if (err) {
res.status(500).send({
status: 500,
message: err
});
return;
}
res.send(chunkOfFile);
});
});
function getFileData(req, res, dbconfig, fileid, token, next) {
var url ="http://*ip*/service/rest/getfiledata";
var reqbody = {
fileId: fileid
};
var options = {
url: url,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': token
},
json: true,
body: reqbody
};
/*SOME LOOP HERE TO GET EACH CHUNK AND SEND TO BROWSER*/
request(options, function(err, resp, body) {
if (err) {
console.log(err);
next(err, undefined);
return;
} else {
next(undefined, body)
};
});
};