>  기사  >  웹 프론트엔드  >  Node.js의 스트림 - 튜토리얼 - 7부

Node.js의 스트림 - 튜토리얼 - 7부

Patricia Arquette
Patricia Arquette원래의
2024-09-20 20:30:03512검색

Streams in Node.js - Tutorial - Part 7

Node.js의 스트림 이해

Node.js의 스트림은 특히 대용량 데이터로 작업할 때 I/O 작업을 효율적으로 처리하는 강력한 방법입니다. 데이터를 한꺼번에 읽고 쓰는 대신 스트림을 사용하면 데이터를 덩어리로 처리하여 성능이 향상되고 메모리 소비가 줄어듭니다.

스트림 유형

Node.js는 네 가지 유형의 스트림을 제공합니다.

Stream Type Description Example
Readable Streams Used for reading data Reading from a file
Writable Streams Used for writing data Writing to a file
Duplex Streams Both readable and writable Sockets
Transform Streams A type of duplex stream where data can be modified as it is read or written Compression
스트림 유형

설명

읽기 가능한 스트림

데이터를 읽는 데 사용 파일에서 읽기
    쓰기 가능한 스트림
데이터 쓰기에 사용 파일에 쓰기 이중 스트림 읽기 및 쓰기 가능 소켓 스트림 변환
  • 데이터를 읽거나 쓸 때 데이터를 수정할 수 있는 이중 스트림 유형 압축 스트림 작동 방식
  • 스트림은 이벤트에 따라 작동합니다. 즉, 데이터를 사용할 수 있거나 쓸 준비가 되었거나 오류가 발생할 때 응답하기 위해 리스너에 의존합니다. 일반적인 이벤트는 다음과 같습니다.
  • data: 데이터 덩어리를 사용할 수 있을 때 발생합니다.


    end

    : 더 이상 소비할 데이터가 없을 때 발생합니다.
    const fs = require('fs');
    
    const readableStream = fs.createReadStream('example.txt', { encoding: 'utf8' });
    
    readableStream.on('data', (chunk) => {
      console.log('Received chunk:', chunk);
    });
    
    readableStream.on('end', () => {
      console.log('No more data.');
    });
    
    readableStream.on('error', (err) => {
      console.error('Error:', err);
    });
    

    error: 스트리밍 과정에서 오류가 발생하면 발생합니다.


    읽기 가능한 스트림 예시
    const fs = require('fs');
    
    const writableStream = fs.createWriteStream('output.txt');
    
    writableStream.write('Hello, Node.js streams!\n');
    writableStream.end(); // Close the stream
    
    writableStream.on('finish', () => {
      console.log('Finished writing.');
    });
    
    writableStream.on('error', (err) => {
      console.error('Error:', err);
    });
    

    읽기 가능한 스트림을 사용하여 파일을 읽는 예를 살펴보겠습니다.

    쓰기 가능한 스트림 예시

    쓰기 가능한 스트림을 사용하여 파일에 쓰는 방법은 다음과 같습니다.
    • 스트림을 사용하는 이유
    readableStream.pipe(writableStream);
    

    스트림은 대용량 데이터를 효율적으로 처리하는 데 도움이 됩니다. 예를 들어 파일 작업 시 스트림을 사용하면 전체 파일을 메모리에 로드하는 것을 방지할 수 있습니다. 이는 미디어 파일, 대규모 데이터세트 또는 HTTP 요청 데이터를 처리할 때 특히 유용합니다.


    최종 팁

    충돌을 방지하려면 항상 오류 이벤트를 사용하여 스트림 오류를 처리하세요. 파이프를 사용하면 읽기 가능한 스트림을 쓰기 가능한 스트림에 쉽게 연결할 수 있습니다. 스트림은 I/O가 많은 애플리케이션 작업에 적합하며 대규모 데이터 세트를 처리할 때 메모리 관리를 더 쉽게 해줍니다. 읽어주셔서 감사합니다. 즐거운 코딩 되세요! ?

    위 내용은 Node.js의 스트림 - 튜토리얼 - 7부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.