是否可以管道到console.log?

spi*_*ers 27 stream node.js

我正在尝试学习node.js.

我想了解溪流和管道.

是否可以将http请求的响应传递给console.log?

我知道如何通过将处理程序绑定到数据事件来完成此操作,但我更感兴趣的是将它流式传输到控制台.

http.get(url, function(response) {
  response.pipe(console.log);
  response.on('end', function() {
    console.log('finished');
  });
});
Run Code Online (Sandbox Code Playgroud)

谢谢

Ben*_*une 56

console.log 只是一个将流程流传递给输出的函数.

请注意,以下是示例代码

console.log = function(d) {
  process.stdout.write(d + '\n');
};
Run Code Online (Sandbox Code Playgroud)

管道到process.stdout完全相同.

http.get(url, function(response) {
  response.pipe(process.stdout);
  response.on('end', function() {
    console.log('finished');
  });
});
Run Code Online (Sandbox Code Playgroud)

请注意,您也可以这样做

process.stdout.write(response);
Run Code Online (Sandbox Code Playgroud)

  • FWIW,process.stdout是一个可写流,因此不会发出'end'而且,由于它的特殊状态,它不会发出'finish'eitgher. (5认同)
  • 这完全是我想知道的,谢谢 (2认同)