Sobes.tech
Junior — Middle

Pode explicar o que é um fluxo de dados (Stream) no Node.js e como é utilizado?

sobes.tech IA

Resposta da IA

No Node.js, um fluxo de dados (Stream) é uma abstração para trabalhar com dados sequenciais que chegam ou são enviados em partes, em vez de tudo de uma vez. Isso permite processar eficientemente grandes volumes de dados sem precisar carregá-los completamente na memória.

Existem quatro tipos principais de fluxos:

  • Readable (legíveis): fluxos de onde se podem ler dados (por exemplo, leitura de arquivo).
  • Writable (escrevíveis): fluxos onde se podem escrever dados (por exemplo, escrever em um arquivo).
  • Duplex: fluxos que podem ler e escrever (por exemplo, sockets de rede).
  • Transform: uma variante de Duplex que pode modificar os dados ao longo do caminho (por exemplo, compressão).

Exemplo de uso de um fluxo legível para ler um arquivo e gravar seu conteúdo em outro arquivo:

const fs = require('fs');

const readable = fs.createReadStream('input.txt');
const writable = fs.createWriteStream('output.txt');

readable.pipe(writable);

O método pipe() transfere automaticamente os dados de um fluxo para outro, o que simplifica o trabalho com fluxos e aumenta o desempenho ao processar grandes volumes de dados.