Javascript “处理”;“原始数据”;并在Node Express端点中传递数据
我正在使用axios进行API调用以获取文件:Javascript “处理”;“原始数据”;并在Node Express端点中传递数据,javascript,node.js,express,stream,axios,Javascript,Node.js,Express,Stream,Axios,我正在使用axios进行API调用以获取文件: async function getData() { const config = {}; // { responseType: 'stream'}; const { data } = await axios.get(URL, config); console.log(data); return data; } 当我试图打印HTTP请求的结果时,我得到了一堆废话(看起来像某种类型的原始数据)-快照如下
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服务器端点的任何人-我该如何做?我读过一些关于使用流并将其导入响应的内容
router.get("/file", async(res,res) => {
const file = await getFile();
//const stream = fs.createReadStream(file)
//res.pipe(stream)
})
但我的问题是,我不知道如何处理从API返回的数据。我已尝试将axios的响应类型
更改为流
(默认值: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);
})
当
responseType
为流时,axios解析为data
属性为流的响应对象,您可以通过管道将其传输到响应:
const file = await getFile();
file.data.pipe(/*to*/ res);
将我的尝试编辑成问题-我在尝试管道时出错了它确实不同,这是我的错。道歉