从节点中的远程位置创建读取流
Create Read Stream from remote location in node
我正在尝试从节点中的远程 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 并解析它而不是编写它。
根据其文档,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);
});
我正在尝试从节点中的远程 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 并解析它而不是编写它。
根据其文档,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);
});