【问题标题】:How do i retrieve an external PDF from a URL and pass it to another function in node js?如何从 URL 检索外部 PDF 并将其传递给节点 js 中的另一个函数?
【发布时间】:2021-07-30 14:37:04
【问题描述】:

我需要能够从 URL 检索 PDF 文档并将其传递给另一个函数,该函数最终将其存储在数据库中。我找到了许多将文件下载到本地存储的解决方案,但我不想这样做。 我找到的获取文件的最简单方法如下所示:

var http = require('http');
var fs = require('fs');

var download = function(url, dest, cb) {
  var file = fs.createWriteStream(dest);
  var request = http.get(url, function(response) {
    response.pipe(file);
    file.on('finish', function() {
      file.close(cb);
    });
  });
}  

我如何从请求中获取信息并将其粘贴到一个常量中,以便我可以在另一个函数中使用它?

谢谢

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    如果您使用response.pipe(file),您正在写入一个可写流,在这种情况下是一个文件。由于您不想使用本地存储,因此应该选择不同的方法。

    您可以读取原始数据块并将它们组合成一个Buffer 对象,如下所述:https://stackoverflow.com/a/21024737/7821823。然后,您可以将缓冲区传递给另一个函数。

    http.get(url), function(res) {
        var data = [];
    
        res.on('data', function(chunk) {
            data.push(chunk);
        }).on('end', function() {
            //at this point data is an array of Buffers
            //so Buffer.concat() can make us a new Buffer
            //of all of them together
            var buffer = Buffer.concat(data);
            console.log(buffer.toString('base64'));
        });
    });
    

    【讨论】:

      猜你喜欢
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多