Node.js 从节点中的远程位置创建读取流
我正在尝试从节点中的远程url提取csv文件并使用 来解析它。我正在使用请求库获取文件,但无法将其转换为可读流,以便将其发送到csvtojson。抱歉,这是typescript,但它应该是可解释的。 如果我这样做Node.js 从节点中的远程位置创建读取流,node.js,filestream,Node.js,Filestream,我正在尝试从节点中的远程url提取csv文件并使用 来解析它。我正在使用请求库获取文件,但无法将其转换为可读流,以便将其发送到csvtojson。抱歉,这是typescript,但它应该是可解释的。 如果我这样做 request.get("http://myurl.com", (err, response, body) => { console.log(body); }); 一些看起来像文件被打印出来的东西,但我无法将其转换为可写流。这当然不是我可以发送到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);
});
我尝试了这个精确的答案,结果设置为false,但对我无效。结果是,当constructResult设置为false时,它将返回一个空对象,这使我认为没有任何东西被传输到函数。非常感谢。