Método Node.js Stream writable._write()

El método writable._write() es una interfaz de programación de aplicaciones incorporada del módulo Stream que se utiliza para implementar un flujo grabable. El método writable._write() se adjunta con un guión bajo, ya que está dentro de la clase que lo define. Además, el programa de usuario no debe llamarlo directamente. Este método se implementa mediante el uso de clases secundarias y solo lo llaman los métodos internos de la clase Writable.

Sintaxis:

writable._write( chunk, encoding, callback )

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación:

  • chunk: Son los datos a escribir los cuales pueden ser de tipo buffer, string o cualquiera.
  • encoding: Es el tipo de codificación a utilizar si el chunk es de tipo string.
  • devolución de llamada: es un método que se llama para verificar si la escritura se completó o falló. El primer argumento pasado a la devolución de llamada debe ser el objeto «Error» si la llamada no tuvo éxito y nulo si la escritura tuvo éxito.

Los siguientes ejemplos ilustran el uso del método writable._write() Node.js:

Ejemplo 1:

// Node.js program to demonstrate the     
// writable._write() method
  
// Constructing writable stream
const {Writable} = require("stream");
  
// Function to check char
const charchecks = new Writable({
  
  // Implementing write function
  write(chunk, encoding, callback){
  
    // Defining string
    const string = chunk.toString();
      
    // If string contains below character
    // then an error is show else the
    // written string is returned
    if(string.includes("\/")){
      callback(Error("Forbidden character"));
      
    }
    else
    {
      // Displays string
      console.log(string);
      callback();
    }
  }
});
  
// Piping standard input to standard output, if
// you don't enter the forbidden character else
// it throws error
process.stdin.pipe(charchecks).on('error', console.log);
  
// Enter the string to be written
console.log("Enter the string: ");

Ahora, debe ejecutar el código e ingresar la string en tiempo de ejecución para obtener el resultado.

Enter the string:
GeeksforGeeks
GeeksforGeeks // Output

Enter the string:
GfG
GfG // Output

Enter the string:
Nidhi
Nidhi //Output

Ahora, para salir, debe presionar control + C.

Ejemplo 2:

// Node.js program to demonstrate the     
// writable._write() method
   
// Constructing writable stream
const {Writable} = require("stream");
   
// Function to check char
const charchecks = new Writable({
   
  // Implementing write function
  write(chunk, encoding, callback){
   
    // Defining string and encoding it
    const string = chunk.toString('hex');
   
    // Prints encoded string
    console.log(string);
       
    // If the encoded string contains below 
    // character then an error is shown else
    // the length of the encoded string is 
    // returned
    if(string.includes("c")){
         
      callback(Error("This is an error."));
       
    }
    else
    {
      // Displays length of the encoded string
      console.log(string.length);
      callback();
    }
  }
});
   
// Piping standard input to standard output, if
// you don't enter the forbidden character else
// it throws an error
process.stdin.pipe(charchecks).on('error', console.log);
   
// Enter the string to be written
console.log("Enter the string: ");

Ahora, debe ejecutar el código e ingresar la string en tiempo de ejecución para obtener el resultado.
Producción:

Enter the string:
Geeks
4765656b730a   // encoded string
12             // length of encoded string
Nidhi
4e696468690a
12
portal
706f7274616c0a   // encoded string contains "c" so length of it  
                 // is not returned and an error is thrown
Error: This is an error.
    at Writable.write [as _write] (/home/runner/QuickwittedDistantCensorware/index.js:25:16)
    at doWrite (_stream_writable.js:415:12)
    at writeOrBuffer (_stream_writable.js:399:5)
    at Writable.write (_stream_writable.js:299:11)
    at ReadStream.ondata (_stream_readable.js:710:20)
    at ReadStream.emit (events.js:198:13)
    at ReadStream.EventEmitter.emit (domain.js:448:20)
    at addChunk (_stream_readable.js:288:12)
    at readableAddChunk (_stream_readable.js:269:11)
    at ReadStream.Readable.push (_stream_readable.js:224:10)

Ahora, para salir, debe presionar el control C.
Entonces, aquí se arroja un error ya que la entrada de tiempo de ejecución incluye el carácter indicado que es un carácter prohibido, por lo que se arroja un error.

Referencia: https://nodejs.org/api/stream.html#stream_writable_write_chunk_encoding_callback_1

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *