Maison > interface Web > js tutoriel > Maîtriser les flux et pipelines Node.js

Maîtriser les flux et pipelines Node.js

DDD
Libérer: 2024-09-19 06:15:33
original
1104 Les gens l'ont consulté

Mastering Node.js Streams and Pipelines

Les flux sont le super pouvoir de Node.js pour gérer efficacement de grands ensembles de données. Passons aux flux et aux pipelines.

Pourquoi Streams ?

  1. Efficacité de la mémoire
  2. Efficacité du temps
  3. Composabilité

Types de flux

  1. Lisible
  2. Écrit
  3. Duplex
  4. Transformer

Utilisation de base du flux

const fs = require('fs');

const readStream = fs.createReadStream('big.file');
const writeStream = fs.createWriteStream('output.file');

readStream.on('data', (chunk) => {
  writeStream.write(chunk);
});

readStream.on('end', () => {
  writeStream.end();
});
Copier après la connexion

Entrez dans les pipelines

Les pipelines simplifient la composition des flux et la gestion des erreurs.

const { pipeline } = require('stream/promises');
const fs = require('fs');
const zlib = require('zlib');

async function compressFile(input, output) {
  await pipeline(
    fs.createReadStream(input),
    zlib.createGzip(),
    fs.createWriteStream(output)
  );
  console.log('Compression complete');
}

compressFile('big.file', 'big.file.gz').catch(console.error);
Copier après la connexion

Flux de transformation personnalisés

const { Transform } = require('stream');

const upperCaseTransform = new Transform({
  transform(chunk, encoding, callback) {
    this.push(chunk.toString().toUpperCase());
    callback();
  }
});

pipeline(
  process.stdin,
  upperCaseTransform,
  process.stdout
).catch(console.error);
Copier après la connexion

Conseils de performances

  1. Utilisez highWaterMark pour contrôler la mise en mémoire tampon
  2. Implémenter stream.Readable.from() pour les itérables asynchrones
  3. Exploitez stream.finished() pour le nettoyage

Pièges courants

  1. Ignorer la contre-pression
  2. Erreurs de mauvaise gestion
  3. Négliger de mettre fin aux flux inscriptibles

Les flux brillent par leurs grands ensembles de données ou leur traitement en temps réel. Maîtrisez-les pour des applications Node.js évolutives.

à votre santé ?

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal