我正在查看“http 客户端”问题
我提出了以下解决方案,通过了 2/3 测试:
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)
这两个解决方案不应该是相同的吗?我在这里缺少什么?
最佳答案
在第一个示例中,您将 http 响应传递到 stdout(但从不写入请求流)。然后将输入从 stdin 直接传递到 stdout。所以你有两个流写入标准输出。结果是这样的:
HTTP RESPONSE ----- | v STDIN -------> STDOUT
在第二个示例中,您已将来自 stdin 的输入传递到请求流,并将该请求的响应传递到 stdout。结果是这样的:
STDIN ----> HTTP REQUEST/RESPONSE ----> STDOUT
关于javascript - 管道订购很重要吗?将 stdin 通过管道传输到 http 请求并将结果通过管道传输到 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36407530/