【问题标题】:Create Read Stream from remote location in node从节点中的远程位置创建读取流
【发布时间】:2015-08-25 19:27:24
【问题描述】:

我正在尝试从节点中的远程 url 中提取 csv 文件并使用 csvtojson 解析它。我正在使用请求库来获取文件,但无法将其转换为可读流,以便我可以将其发送到 csvtojson。抱歉,这是打字稿,但它应该是可以解释的。 如果我执行以下操作

request.get("http://myurl.com", (err, response, body) => {
    console.log(body);
});

一些看起来像文件的东西被打印出来了,但我不能把它变成一个可写的流。这当然不是我可以发送到 csvtojson 的任何内容。
我知道你可以像这样创建一个 writestream。

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

但这对我没有多大好处,因为我只想获取 csv 并对其进行解析而不是编写它。

【问题讨论】:

    标签: node.js filestream


    【解决方案1】:

    根据其文档,csvtojson 支持流(文档中有示例)。因此,您只需执行以下操作:

    var request = require('request');
    var Converter = require('csvtojson').Converter;
    
    request('http://example.org/foo.csv')
      .pipe(new Converter({constructResult:true}))
      .on('end_parsed', function(jsonObj) {
        console.dir(jsonObj);
      });
    

    【讨论】:

    • 我尝试了将constructResult设置为false的确切答案,但它对我不起作用。事实证明,当constructResult 设置为false 时,它​​会返回一个空对象,这让我认为没有任何东西通过管道传输到该函数。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多