node.js - 在服务器创建文件以供下载时让客户端挂起
问题描述
在带有 Node.js + Express 的服务器上,我有一个 API,用于将一百万条记录从数据库导出到文件,然后需要由客户端下载。我现在是怎么做的:在客户端等待响应时创建文件,这大约需要 2 分钟,当文件准备好时执行res.download(file)
。
它在本地运行良好,但在部署时出现网关 504 错误。最初,我尝试在通过 DB 游标时将数据通过管道传输到客户端,但速度太慢,因此我实现了多线程机制,并且无法再通过管道传输。
有没有办法解决这个问题?也许通过向客户端打开响应流但在文件准备好下载之前不发送任何内容。不确定这是否可能?
解决方案
推荐阅读
- c++ - rapidjson 文档创建嵌套对象
- mysql - Nodejs:MySQL 包似乎在短暂的查询后冻结?
- c - 从 helmgrind 分离 pthread 数据竞争
- ffmpeg - 使用 FFMPEG 高效连接和交叉淡化 .ts 文件
- python - TypeError:“int”对象不可下标,类型错误
- python-3.x - 将带有标签的字符串转换为 BeautifulSoup 标签对象
- swift - 快速更改表格视图滑动按钮图像图标颜色
- sql - 用数据更新了表“c”,此更新应再次更新表“a”和表“b”中的列
- apache-spark - spark中容器和执行器的区别
- forms - VUEJS根据api响应属性值设置选择默认值(显示未定义)