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("程序执行完毕");