Maison  >  Article  >  interface Web  >  Streams dans Node.js - Tutoriel - Partie 7

Streams dans Node.js - Tutoriel - Partie 7

Patricia Arquette
Patricia Arquetteoriginal
2024-09-20 20:30:03506parcourir

Streams in Node.js - Tutorial - Part 7

Comprendre les flux dans Node.js

Les flux dans Node.js sont un moyen puissant de gérer efficacement les opérations d'E/S, en particulier lorsque vous travaillez avec de grandes quantités de données. Au lieu de lire et d'écrire des données en même temps, les flux nous permettent de les traiter par morceaux, ce qui améliore les performances et réduit la consommation de mémoire.

Types de flux

Node.js propose quatre types de flux :

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
Type de flux

Description

Exemple
ête>

Flux lisibles

Utilisé pour lire des données Lecture à partir d'un fichier
    Flux inscriptibles
Utilisé pour écrire des données Écrire dans un fichier Flux duplex À la fois lisible et inscriptible Prise Transformer les flux
  • Un type de flux duplex dans lequel les données peuvent être modifiées au fur et à mesure de leur lecture ou de leur écriture Compression Comment fonctionnent les flux
  • Les flux fonctionnent sur des événements, ce qui signifie qu'ils s'appuient sur les auditeurs pour répondre lorsque les données sont disponibles, prêtes à être écrites ou qu'une erreur se produit. Les événements courants incluent :
  • données : émis lorsqu'un morceau de données est disponible.


    fin

     : émis lorsqu'il n'y a plus de données à consommer.
    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);
    });
    

    erreur : émis si une erreur se produit pendant le processus de streaming.


    Exemple de flux lisible
    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);
    });
    

    Regardons un exemple de lecture d'un fichier à l'aide d'un flux lisible :

    Exemple de flux inscriptible

    Voici comment écrire dans un fichier à l'aide d'un flux inscriptible :
    • Pourquoi utiliser les flux ?
    readableStream.pipe(writableStream);
    

    Les flux aident à traiter efficacement de grandes quantités de données. Par exemple, lorsque vous travaillez avec des fichiers, les flux vous permettent d'éviter de charger l'intégralité du fichier en mémoire. Ceci est particulièrement utile lors de la gestion de fichiers multimédias, de grands ensembles de données ou de données provenant de requêtes HTTP.


    Conseils finaux

    Toujours gérer les erreurs de flux à l'aide de l'événement error pour éviter les plantages. Utilisez des tuyaux pour connecter facilement des flux lisibles à des flux inscriptibles. Les flux sont parfaits pour travailler avec des applications gourmandes en E/S et facilitent la gestion de la mémoire lors du traitement de grands ensembles de données. Merci d'avoir lu et bon codage ! ?

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn