Como usar fluxos legíveis em Node.js?

Como Usar Fluxos Legiveis Em Node Js



Os dados são transferidos pela rede entre o remetente ou origem e destino ou receptor na forma de fluxos. Esses fluxos podem ser criados e combinados com a utilização de vários métodos, e os arquivos de áudio ou vídeo também podem ser transmitidos pelo fluxo. Os dados lidos podem ser inseridos em outros arquivos de destino usando “ escrever() ' e ' empurrar() ” métodos também.

Este guia explicará o uso de streams legíveis em Node.js.

Como usar fluxos legíveis em Node.js?

O ' Legível ”streams são criados invocando o“ criarReadStream() ”E os dados lidos podem ser exibidos na página da web criando o servidor local. Os ouvintes de eventos com a ajuda de “ sobre() ”Os métodos também podem ser anexados aos fluxos legíveis para exibir mensagens ou executar ações específicas quando a leitura do arquivo começa ou termina.







Dê uma olhada no exemplo para uma demonstração prática.



Exemplo: leitura e exibição de conteúdo no servidor usando fluxos legíveis

Neste exemplo, o conteúdo de um arquivo fornecido está sendo lido e exibido no navegador da web:



const fsObj = exigir ( 'fs' ) ;

const httpObj = exigir ( 'http' ) ;

const servidor local = httpObj. criarServidor ( ( solicitação, resposta ) => {

tentar {
// Arquivo direcionado para leitura
const fluxo de dados = fsObj. criarReadStream ( 'usecase.txt' ) ;
// Canaliza o arquivo para resposta
fluxo de dados. cano ( resposta ) ;
} pegar ( erros ) {
console. erro ( erros ) ;
}
} ) ;

servidor local. ouvir ( 8080 , ( ) => {
console. registro ( 'O servidor está rodando no número da porta localhost: '8080' ' )
} ) ;

A descrição do código acima é a seguinte:





  • Primeiro, importe o “ fs ' e ' http ”módulos e armazenam seus objetos em“ fsObj ' e ' httpObj ”variáveis ​​respectivamente.
  • Em seguida, o servidor foi criado invocando o “ criarServidor() ”E armazenando este servidor recém-criado em um“ servidor local ' variável.
  • Em seguida, use um “ tentar ”bloco dentro da função de retorno de chamada do método e invoca o“ criarReadStream() ”Método usando o“ fsObj ' variável.
  • Passe o conteúdo do arquivo de destino que precisa ser lido entre parênteses deste método e armazene o resultado no “ fluxo de dados ' variável.
  • Insira o ' fluxo de dados ”variável no“ .cano() ”Método para enviar a resposta.
  • Utilize o “ pegar ”Bloco para lidar com quaisquer erros ocorridos.
  • Por fim, ouça ou configure o servidor pelo número da porta “ 8080 ”E exibir a mensagem de sucesso com a ajuda de sua função de retorno de chamada.

Execute o arquivo que contém (controlFlow.js) do código acima, por meio do comando indicado abaixo:

nó controlFlow. js

A saída gerada mostra que com a ajuda de “ .cano() ' e ' Fluxo legível ”, os dados do arquivo foram lidos e enviados ao fluxo de destino para exibição na página da web:



Exemplo 2: Lendo arquivos estáticos localmente usando ReadStream

Nesse caso, o arquivo fornecido no stream é selecionado e seu conteúdo é então exibido na janela do console com a ajuda de ouvintes de eventos:

const fsObj = exigir ( 'fs' ) ;

const streamObj = fsObj. criarReadStream ( 'usecase.txt' ) ;

streamObj. sobre ( 'dados' , ( contente ) => {

console. registro ( contente. para sequenciar ( ) ) ;

} ) ;

streamObj. sobre ( 'fim' , ( ) => {

console. registro ( ' \n Terminei de ler o arquivo. ) ;

} ) ;

streamObj. cano ( processo. saída padrão ) ;

A descrição do código acima é a seguinte:

  • Primeiro, o “ fs ”O módulo é importado e seu objeto é armazenado no“ fsObj ' variável.
  • A seguir, usando “ fsObj ”invoca o“ criarReadStream() ”E passa o caminho do arquivo de destino cujo conteúdo precisa ser recuperado. Armazene o resultado do método em uma nova variável “ streamObj ”.
  • Anexe o “ sobre() ”Método com “streamObj” que invoca uma função de retorno de chamada quando “ dados ”é recuperado. Os dados recuperados são passados ​​como parâmetro para a função de retorno de chamada que converte os dados no formato String e os exibe no console.
  • Anexe novamente o “ sobre() ”método com“ streamObj ”E desta vez sua função de retorno de chamada exibe uma mensagem final quando a leitura do arquivo é concluída.

A saída gerada após a execução do código acima mostra que os dados lidos junto com a mensagem final foram exibidos no console:

Isso é tudo sobre o uso de streams legíveis em Node.js.

Conclusão

Para trabalhar com fluxos legíveis em Node.js, o método de “ criarReadStream() ”É invocado através do“ fs ”objeto do módulo. O caminho do arquivo de destino no qual o conteúdo precisa ser gravado é então passado como parâmetro do método. Pode ser utilizado com o “ .cano() ”Método para executar outras tarefas sobre os dados recuperados, como escrever o conteúdo em outro arquivo. Esta postagem ilustrou o procedimento de trabalho com fluxos legíveis.