Explication du tampon Node.js

Que sont les tampons?

Le binaire est simplement un ensemble ou une collection de 1et 0. Chaque nombre dans un binaire, chaque 1 et 0 dans un ensemble sont appelés un bit . L'ordinateur convertit les données dans ce format binaire pour stocker et effectuer des opérations. Par exemple, voici cinq binaires différents:

10, 01, 001, 1110, 00101011

JavaScript n'a pas de données de type octet dans son API principale. Pour gérer les données binaires Node.js inclut une implémentation de tampon binaire avec un module global appelé Buffer.

Créer un tampon

Il existe différentes manières de créer un tampon dans Node.js. Vous pouvez créer un tampon vide d'une taille de 10 octets.

const buf1 = Buffer.alloc(10);

À partir de chaînes encodées en UTF-8, la création est comme ceci:

const buf2 = Buffer.from('Hello World!');

Il existe différents encodages acceptés lors de la création d'un tampon:

  • ascii
  • utf-8
  • base64:
  • latin1
  • binaire
  • hexadécimal

Trois fonctions distinctes sont allouées dans l'API Buffer pour utiliser et créer de nouveaux tampons. Dans les exemples ci-dessus, nous avons vu alloc()et from(). Le troisième est allocUnsafe().

const buf3 = Buffer.allocUnsafe(10);

Lorsqu'elle est renvoyée, cette fonction peut contenir d'anciennes données qui doivent être écrasées.

Interactions avec Buffer

Il existe différentes interactions qui peuvent être effectuées avec l'API Buffer. Nous allons couvrir la plupart d'entre eux ici. Commençons par convertir un tampon en JSON.

let bufferOne = Buffer.from('This is a buffer example.'); console.log(bufferOne); // Output:  let json = JSON.stringify(bufferOne); console.log(json); // Output: {"type": "Buffer", "data": [84,104,105,115,32,105,115,32,97,32,98,117,102,102,101,114,32,101,120,97,109,112,108,101,46]}

Le JSON spécifie que le type d'objet en cours de transformation est un Buffer et ses données. La conversion d'un tampon vide en JSON nous montrera qu'il ne contient que des zéros.

const emptyBuf = Buffer.alloc(10); emptyBuf.toJSON(); // Output: { "type": "Buffer", "data": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }

Notez que l'API Buffer fournit également une fonction directe toJSON()pour convertir un tampon en objet JSON. Pour examiner la taille d'un tampon, nous pouvons utiliser la lengthméthode.

emptyBuf.length; // Output: 10

Maintenant, convertissons le tampon en une chaîne lisible, dans notre cas, le codé utf-8.

console.log(bufferOne.toString('utf8')); // Output: This is a buffer example.

.toString()par défaut convertit un tampon en une chaîne au format utf-8. C'est ainsi que vous décodez un tampon. Si vous spécifiez un encodage, vous pouvez convertir le tampon en un autre encodage

console.log(bufferOne.toString('base64'));

Plus d'informations sur les tampons:

  • Besoin d'une meilleure compréhension des tampons dans Node.js? Regarde ça.