可以在.pipe()流中使用npm请求模块吗?

时间:2015-06-11 17:53:43

标签: 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是一个自定义转换,在管道到process.stdout时工作正常)

我已经阅读了文档和源代码。这不适用于'request'或'new request()',因为构造函数需要一个URL。

2 个答案:

答案 0 :(得分:0)

它将与request.put()一起使用:yourStream.pipe(request.put('http://example.com/form'))

答案 1 :(得分:0)

经过更多的研究和实验,我得出结论,请求不能以这种方式使用。简单的答案是请求创建可读流,而.pipe()方法需要可写流。

我尝试了多次尝试将变换中的请求包装起来,但没有运气。虽然您可以接收管道网址并创建新请求,但我无法弄清楚如何重置管道回调,而不会出现一些非常不自然的流模式弯曲。任何想法都会受到赞赏,但我已经开始使用url流中的事件来启动新请求(url).pipe(etc)类型流。