如何将流 responseType 传递给我的客户端?
Posted
技术标签:
【中文标题】如何将流 responseType 传递给我的客户端?【英文标题】:How to pass a stream responseType to my client? 【发布时间】:2021-12-18 04:23:47 【问题描述】:我正在尝试从我的 express js 应用下载文件:
const response = await Axios(
method: 'GET',
url: url,
responseType: 'stream'
)
但是,与其在之后这样做:
response.data.pipe(Fs.createWriteStream(path))
我想将响应发送给我的 js 客户端,该客户端使用 ajax 请求我的 express js 应用程序,以便文件将直接从我的浏览器(客户端)而不是服务器端下载。
有什么办法吗?
【问题讨论】:
看看服务器发送的事件这可能满足你的要求----->SSE 【参考方案1】:您可以将快速响应对象传递给管道方法
response.data.pipe(res);
【讨论】:
在我的客户端中得到一个非常长的字符串,例如UEsDBAoAAAANNKSeeUUAAAAAAAAAAAAAYYYAJABAAc3ltcGhvbnkvVVgMAAjQdFQU0HRU9Q...
。我试图做new Blob([result]) etc.
,但后来我得到一个损坏的文件。有什么建议吗? `
看起来像 base64 编码的数据(对于一个 zip 文件)以上是关于如何将流 responseType 传递给我的客户端?的主要内容,如果未能解决你的问题,请参考以下文章