javascript - Node.js:将远程文件流式传输到文件下载

标签 javascript node.js

我得到一个远程 url,其中包含另一个域中的 pdf 文件。我需要通过在客户端浏览器中启动文件下载另存为对话框以某种方式将此文件传递给用户。

最佳答案

var request = require("request");

expressjs_app.get("/file_url", function(req, res){
   request.get('remote_file_url').pipe(res);
});

如果您使用的是 http 模块而不是 express js,则将第二部分替换为:

var http = require("http");
http.createServer(function (req, res) {
  if (req.url === '/file_url') {
     request.get('remote_file_url').pipe(res);        
  } 
});

更新:
使用“请求”模块 deprecated , 可以使用其他替代方法。下面的代码片段使用的是 nodejs 原生 https 模块。将 request.get 行替换为:

var https = require('https');
https.get('remote_file_url', remote_response => remote_response.pipe(res));

关于javascript - Node.js:将远程文件流式传输到文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538405/

相关文章:

javascript - Express'response.sendFile() 发送未捕获的语法错误 : Unexpected token <

javascript - Angular Controller - 保存 Node 发送的接收文件

javascript - MongoDB 在本地运行还是通过 Atlas 运行?

javascript - MongoDB Mongoose 聚合/数学运算

javascript - 如何在网络浏览器中处理大数据集?

javascript - NPM 上缺少可用的模块名称

node.js - 如何从 next() 停止 Express.js 路由?

node.js - Firebase 云功能很慢

node.js - 将 Twilio 服务部署到 Heroku 时出错

javascript - Bootstrap Collapse.js 开关隐藏/显示菜单