通过POST将文件传递给NodeJS,然后传递到另一个API而不保存在磁盘上

我需要从React UI(使用axios)接收用户的文件,通过POST使用Express将这个文件发送到NodeJS方法,然后我需要通过POST直接将这个文件发送到另一个API(.NET WebAPI)而不保存在磁盘上。 我试图直接传递数据文件(req.files.file.data),但.NET API无法识别请求中的文件。

有没有可能在“var”中创build一个临时文件并像我一样从磁盘读取文件时发送它?

这个例子适用于本地文件:

var formData = { form: "{ abn: '666666666' }", files: JSON.stringify([ { name: "file1", type: "1", number: "6666" }, { name: "file2", type: "3", number: "3333" }, ]), // Pass multiple values /w an Array attachments: [ fs.createReadStream(__dirname + '/../file1.txt'), fs.createReadStream(__dirname + '/../file2.txt') ], }; var reqs = request.post({url:'https://tms-dev-api.micway.com.au/api/company/file', formData: formData, json: true}, function optionalCallback(err, response, body) { if (err) { return res.send(err); } return res.send({ status: response.statusCode, body: body }); }); 

我正在创build一个本地文件,然后发送它; 不过,我不相信这是做这件事的最好方法。 喜欢这个:

 router.post('/file', function(req, res) { var fstream; req.pipe(req.busboy); req.busboy.on('file', function (fieldname, file, filename) { fstream = fs.createWriteStream(__dirname + '/' + filename); file.pipe(fstream); var formData = { attachments: [ fs.createReadStream(__dirname + '/' + filename) ], }; var reqs = request.post({url:'https://tms-dev-api.micway.com.au/api/company/file', formData: formData, json: true}, function optionalCallback(err, response, body) { if (err) { return res.send(err); } console.log({ status: response.statusCode, body: body }) return res.send({ status: response.statusCode, body: body }); }); }); }); 

谢谢!

       

网上收集的解决方案 "通过POST将文件传递给NodeJS,然后传递到另一个API而不保存在磁盘上"