我正在使用axios进行API调用以获取文件
async function getData() {
const config = {}; // { responseType: 'stream'};
const { data } = await axios.get(URL, config);
console.log(data);
return data;
}
当我尝试打印HTTP请求的结果时,我得到了一堆废话(看起来像某种原始数据)-快照在这里:
...
�nG��p���1�l�ՓA�zw:/F� �@LJW>
��⟿_��̠����������=�|�d�s_���A�GԢ������
...
我想将此数据(图像或视频文件)传递给到达Node Express服务器端点的任何人-我该怎么做?我已经阅读了有关使用Stream的内容,然后将其通过管道传递到响应中。
router.get("/file", async(res,res) => {
const file = await getFile();
//const stream = fs.createReadStream(file)
//res.pipe(stream)
})
但是我的问题是,我首先不知道如何处理从API返回的数据。我尝试将axios的responseType
更改为stream
(默认值:json
),这给了我一个对象,但也不确定如何处理它。
编辑-尝试1:
async function getData() {
const config = { responseType: 'stream'};
const { data } = await axios.get(URL, config);
console.log(data);
return data;
}
router.get("/file", async(res,res) => {
const file = await getFile();
file.pipe(res);
})
答案 0 :(得分:1)
在流responseType
的情况下,axios解析为其data
属性是流的响应对象,您可以将该对象通过管道传递给响应:
const file = await getFile();
file.data.pipe(/*to*/ res);