0

I am parsing a JSON file using a parsing stream module and would like to stream results to request like this:

var request = require("request")

fs.createReadStream('./data.json')
  .pipe(parser)
  .pipe(streamer)
  .pipe(new KeyFilter({find:"URL"}) )
  .pipe(request)
  .pipe( etc ... )

(Note: KeyFilter is a custom transform that works fine when piping to process.stdout)

I've read the docs and source code. This won't work with 'request' or 'new request()' because the constructor wants a URL.

4

2 回答 2

0

它将request.put()像这样工作: yourStream.pipe(request.put('http://example.com/form'))

于 2015-06-11T18:12:40.297 回答
0

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

我尝试了几次尝试将请求包装在转换中,但没有成功。虽然您可以接收管道 url 并创建一个新请求,但我不知道如何重置管道回调而不会对流模式进行一些真正不自然的弯曲。任何想法都将不胜感激,但我已经开始使用 url 流中的事件来启动新的 request(url).pipe(etc) 类型流。

于 2015-06-14T18:22:58.477 回答