¿Cómo trabajar con transmisiones grabables en Node.js?

Como Trabajar Con Transmisiones Grabables En Node Js



Los datos se transfieren a través de la red entre los lugares de origen y destino en forma de flujos. El lado emisor se denomina fuente y el lado receptor se representa como flujo de destino. Al utilizar estos Streams, los datos en forma de texto o formato de audio o video se pueden enviar y recibir con mínimas posibilidades de fuga o pérdida de datos.

Esta guía explica cómo trabajar con transmisiones grabables en Node.js.

¿Cómo trabajar con transmisiones grabables en Node.js?

El ' grabable La secuencia se puede utilizar para insertar nuevos datos en el archivo o puede colocar el contenido de otra secuencia aleatoria. La conversión o ubicación de datos ocurre principalmente con la ayuda de ' tubo() ' método. Este método hace que el proceso de conversión y asignación de contenido sea más conveniente y, al mismo tiempo, reduce las posibilidades de colisión de datos.







Sintaxis



La secuencia de escritura se crea invocando el siguiente método:



fs. crearWriteStream ( 'archivodestino.ext' ) ;

En la sintaxis anterior, el ' crearWriteStream() ” es invocado por el objeto del importado “ fs ”, y se pasa como parámetro el archivo en el que se van a escribir los datos.





Echemos un vistazo a un par de ejemplos de transmisiones grabables en Node.js.

Ejemplo 1: escribir el contenido de otro archivo utilizando una secuencia grabable

En el siguiente ejemplo, el archivo aleatorio se envía a través de la secuencia legible y luego el contenido de este archivo se coloca en otro archivo disponible en la secuencia grabable:



era fsObj = requerir ( 'fs' ) ;

constante flujo de datos = fsObj. crearReadStream ( 'minuevoarchivo1.txt' ) ;

constante escribir corriente = fsObj. crearWriteStream ( 'minuevoarchivo2.txt' ) ;

flujo de datos. tubo ( escribir corriente ) ;

Descripción del código anterior:

  • Primero el ' fs 'El módulo se importa y su objeto se almacena en el nuevo' fsObj ' variable.
  • A continuación, con la ayuda de “ fasObj ' invocar el ' crearReadStream() 'Método para crear una secuencia legible y pasar el archivo legible seleccionado como parámetro.
  • Luego, la secuencia de escritura se crea invocando el comando ' crearWriteStream() 'Método para escribir el contenido en el archivo proporcionado.
  • Guarde los resultados de los métodos invocados anteriormente en el archivo ' flujo de datos ' y ' escribir flujo ”variables respectivamente.
  • Finalmente, invoca el “. tubo() 'Método seguido de' flujo de datos ” y liderando con el “ escribir flujo “Variables.

Ahora, ejecute el archivo que lo contiene (controlFlow.js) ejecutando el siguiente comando:

Ejemplo 2: escribir el contenido en un archivo utilizando el método “stream.write()”

En este ejemplo, el “ escribir() El método 'se utiliza para escribir datos en el archivo disponible en la secuencia de escritura:

era fsObj = requerir ( 'fs' ) ;
constante httpObj = requerir ( 'http' ) ;

constante servir localmente = httpObj. crearservidor ( ( solicitar respuesta ) => {
  intentar {
  constante flujo celular = fsObj. crearWriteStream ( 'minuevoarchivo2.txt' ) ;
flujo celular. escribir ( 'Datos que se colocarán en el archivo de destino.' ) ;
flujo celular. fin ( ) ;
respuesta. fin ( 'Datos escritos mediante flujo grabable' )
  }
  atrapar ( error ) {
consola. error ( error ) ;
  }
  } ) ;
servir localmente. escuchar ( 8080 , ( ) => {
consola. registro ( 'El servidor se está ejecutando en el número de puerto de Localhost: '8080' ' )
  ) ;

La descripción del código anterior es la siguiente:

  • Primero, importe el requerido ' fs ' y ' http ' módulos y almacenar sus objetos en ' fsObj ' y ' httpObj ”variables respectivamente.
  • A continuación, se ha creado el servidor invocando el comando “ crearServidor() 'Método y almacenar este servidor recién creado en un' servir localmente ' variable.
  • Luego, use un ' intentar 'Bloque dentro de la función de devolución de llamada del método e invoca el' crearWriteStream() 'Método usando el' fsObj ' variable.
  • Pase el archivo de destino en el que se debe insertar el contenido, dentro del paréntesis de este método y almacene el resultado en el archivo ' flujo celular ' variable
  • Utilice el ' escribir() ”método con esta variable y pase un mensaje ficticio dentro de su paréntesis que se escribirá en el archivo de destino.
  • Cierra el Stream invocando el botón “ fin() 'Método y mostrar un mensaje de éxito en la página web invocando el' respuesta.fin() ' método. Dónde ' respuesta ' es el parámetro de devolución de llamada del ' crearservidor ' método.
  • Utilice el ' atrapar ”Bloque para manejar cualquier error ocurrido.
  • Finalmente, escuche o configure el servidor sobre el número de puerto ' 8080 ”Y muestra el mensaje de éxito con la ayuda de su función de devolución de llamada.

El resultado generado muestra que el texto proporcionado se ha escrito utilizando el comando ' escribir() ' método:

Ejemplo 3: escribir los mismos datos en varios archivos

En este ejemplo, se leerá un solo archivo de la secuencia usando el comando ' crearReadStream() ' método. Luego, el contenido leído se escribe en varios archivos usando el botón ' crearWriteStream() ' y ' .tubo() ' métodos:

era fsObj = requerir ( 'fs' ) ;

constante flujo de datos = fsObj. crearReadStream ( 'minuevoarchivo1.txt' ) ;

constante escribirStream1 = fsObj. crearWriteStream ( 'minuevoarchivo2.txt' ) ;

constante escribirStream2 = fsObj. crearWriteStream ( 'caso de uso.txt' ) ;

flujo de datos. tubo ( escribirStream1 ) ;

flujo de datos. tubo ( escribirStream2 ) ;

En el fragmento de código anterior:

  • El ' crearReadStream() Se invoca el método y el archivo cuyo contenido debe leerse se pasa como parámetro. El resultado de este método se almacena en el archivo ' flujo de datos ' variable.
  • A continuación, el “ crearWriteStream() Se llama al método y el archivo de destino se pasa como parámetro.
  • De la misma manera, la ruta del segundo archivo también se pasa como una secuencia de escritura y los resultados se almacenan en ' escribirStream1 ' y ' escribirStream2 “Variables.
  • Después de eso, usando el botón ' .tubo() 'Método el contenido almacenado en el' flujo de datos 'La variable se asigna a' escribirStream1 ' y ' escribirStream2 “Variables.

El resultado generado muestra que el contenido del archivo proporcionado se ha insertado en los archivos proporcionados a través de las transmisiones:

Se trata del funcionamiento de transmisiones grabables en Node.js.

Conclusión

Para trabajar con secuencias grabables, se utiliza el método de “ crearWriteStream() ' se invoca a través del ' fs ”objeto del módulo. La ruta del archivo de destino en la que se debe escribir el contenido se pasa como parámetro. Para escribir el contenido de otra secuencia el “ .tubo() Se utiliza el método '. El ' escribir() El método 'también es útil cuando se trata de escribir contenido directamente en el archivo de destino. Esta publicación ha ilustrado el procedimiento de trabajar con secuencias grabables.