我正在使用解析流模块解析JSON文件,并希望将结果流式传输给请求,如下所示:
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。
答案 0 :(得分:0)
它将与request.put()
一起使用:yourStream.pipe(request.put('http://example.com/form'))
答案 1 :(得分:0)
经过更多的研究和实验,我得出结论,请求不能以这种方式使用。简单的答案是请求创建可读流,而.pipe()方法需要可写流。
我尝试了多次尝试将变换中的请求包装起来,但没有运气。虽然您可以接收管道网址并创建新请求,但我无法弄清楚如何重置管道回调,而不会出现一些非常不自然的流模式弯曲。任何想法都会受到赞赏,但我已经开始使用url流中的事件来启动新请求(url).pipe(etc)类型流。