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. jsA 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.