Node.js:流式远程文件到文件下载

Node.js: stream remote file to file download

本文关键字:文件 文件下载 程文件 js Node      更新时间:2023-09-26

我得到一个远程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);        
  } 
});

更新:
由于"request"模块已弃用,因此可以使用其他替代方案。下面的代码段使用nodejs本机https模块。将request.get行替换为:

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