Node.js npm请求模块能否在.pipe()流中使用?
我正在使用解析流模块解析JSON文件,并希望将结果流式传输到请求,如下所示:Node.js npm请求模块能否在.pipe()流中使用?,node.js,request,streaming,npm-request,Node.js,Request,Streaming,Npm Request,我正在使用解析流模块解析JSON文件,并希望将结果流式传输到请求,如下所示: var request = require("request") fs.createReadStream('./data.json') .pipe(parser) .pipe(streamer) .pipe(new KeyFilter({find:"URL"}) ) .pipe(request) .pipe( etc ... ) (注意:KeyFilter是一种自定义转换,在管道传输到proce
var request = require("request")
fs.createReadStream('./data.json')
.pipe(parser)
.pipe(streamer)
.pipe(new KeyFilter({find:"URL"}) )
.pipe(request)
.pipe( etc ... )
(注意:KeyFilter是一种自定义转换,在管道传输到process.stdout时可以正常工作)
我已经阅读了文档和源代码。这不适用于“request”或“new request()”,因为构造函数需要URL 它将与
request.put()
一起工作,如下所示:yourStream.pipe(request.put()http://example.com/form)
经过更多的研究和实验,我得出结论,请求不能以这种方式使用。简单的答案是,请求创建一个可读的流,而.pipe()方法需要一个可写的流
我尝试了几次尝试将请求包装成一个转换,但都没有成功。虽然您可以接收管道url并创建一个新请求,但我不知道如何在流模式没有真正不自然弯曲的情况下重置管道回调。如果您有任何想法,我将不胜感激,但我已经开始使用url流中的事件启动一个新的请求(url)。管道(etc)类型流。流结果到哪里?请求模块进行HTTP调用,这就是它需要URL的原因。我正在尝试批处理JSON文件中的URL列表以请求,然后再处理其他解析流。我可以发出一个“找到一个url”事件,但这似乎是过程中的一个不雅的中断。谢谢,但这只调用了一次“example.com”,然后失败了。目标是让URL流通过管道进入请求,其结果通过管道向前传输,以进行额外的解析。