pipe道订购事宜? 将标准input传输到http请求中,并将结果传送到标准输出

我正在看“http客户端”

我做出了通过2/3testing的以下解决scheme:

request = require 'request' #Generate a read/writable stream piping into the outbuff myRequest = request.post("http://localhost:8099").pipe(process.stdout) process.stdin.pipe(myRequest) 

…出现以下错误:

 operator: equal expected: 'azzwcc\njup\nvccvwcddun\nmukp\nikeos.\nPaps\'w\nheghuuyuuv\nwu\nbzcawcsenvzm\nouggkneoasc\n' actual: 'allsee\nfor\ndeedsetton\nyour\nquick.\nTark\'s\nbimboowood\nso\npleasekindly\ncommunicake\n' 

但是,当我按这个顺序输出输出时,它工作正常。

 request = require 'request' #Generate a read/writable stream piping into the outbuff myRequest = request.post("http://localhost:8099") process.stdin.pipe(myRequest).pipe(process.stdout) 

这两个解决scheme不应该一样吗? 我在这里错过了什么?

在第一个示例中,您将http响应传递给stdout(但从不写入请求stream)。 然后你将input从标准input直接传递到标准输出。 所以你有两个stream写入标准输出。 由此产生的情况如下所示:

 HTTP RESPONSE -----
                   |
                   v
 STDIN -------> STDOUT

在第二个示例中,您已经从传递给请求stream的stdininput,并将该请求的响应传递给stdout。 由此产生的情况如下所示:

 STDIN ----> HTTP REQUEST / RESPONSE ----> STDOUT