Node.js는 Chrome JavaScript 런타임을 기반으로 구축된 플랫폼입니다.

Node.js는 Google의 V8 엔진을 기반으로 하는 이벤트 중심 I/O 서버 측 JavaScript 환경입니다. V8 엔진은 Javascript를 매우 빠르게 실행하고 성능이 매우 좋습니다.

Node.js 스트림(stream) 통사론

Stream은 추상 인터페이스이며 Node의 많은 객체가 이 인터페이스를 구현합니다. 예를 들어, http 서버에 대한 요청을 시작하는 요청 개체는 Stream이자 stdout(표준 출력)입니다.

Node.js, Stream에는 네 가지 스트림 유형이 있습니다.

Readable - 읽기 가능한 작업입니다.

Writable - 쓰기 가능한 작업입니다.

Duplex - 읽기 및 쓰기 작업

Transform - 데이터를 쓰고 결과를 읽는 작업입니다.

모든 Stream 객체는 EventEmitter의 인스턴스입니다. 일반적으로 사용되는 이벤트는 다음과 같습니다.

data - 읽을 데이터가 있을 때 트리거됩니다.

end - 더 이상 읽을 데이터가 없을 때 트리거됩니다.

error - 수신 및 쓰기 중에 오류가 발생할 때 발생합니다.

finish - 모든 데이터가 기본 시스템에 기록되면 트리거됩니다.

Node.js 스트림(stream) 예

main.js 파일을 생성합니다. 코드는 다음과 같습니다:

var fs = require("fs");var data = '';
// 创建可读流
var readerStream = fs.createReadStream('input.txt');
// 设置编码为 utf8。
readerStream.setEncoding('UTF8');
// 处理流事件 --> data, end, and error
readerStream.on('data', function(chunk) {   data += chunk;});
readerStream.on('end',function(){   console.log(data);});
readerStream.on('error', function(err){   console.log(err.stack);});
console.log("程序执行完毕");