Com treballar amb fluxos d'escriptura a Node.js?

Com Treballar Amb Fluxos D Escriptura A Node Js



Les dades es transfereixen a través de la xarxa entre els llocs d'origen i de destinació en forma de fluxos. El costat emissor es coneix com a font i el costat receptor es representa com a flux de destinació. Amb aquests fluxos, les dades en forma textual o en format d'àudio o vídeo es poden enviar i rebre amb possibilitats mínimes de fuga o pèrdua de dades.

Aquesta guia explica com es treballa amb fluxos d'escriptura a Node.js.

Com treballar amb fluxos d'escriptura a Node.js?

El ' escrivibles ” es pot utilitzar per inserir dades noves al fitxer o pot col·locar el contingut d'un altre flux aleatori. La conversió o la ubicació de dades es produeix principalment amb l'ajuda del ' tub () ” mètode. Aquest mètode fa que el procés de conversió i assignació de contingut sigui més convenient alhora que redueix les possibilitats de col·lisió de dades.







Sintaxi



El flux d'escriptura es crea invocant el mètode següent:



fs. createWriteStream ( 'targetFile.ext' ) ;

En la sintaxi anterior, el ' creatWriteStream() ' és invocat per l'objecte del ' importat ' fs ” i es passa com a paràmetre el fitxer on s'escriuran les dades.





Fem una ullada a un parell d'exemples de fluxos d'escriptura a Node.js.

Exemple 1: Escriure el contingut d'un altre fitxer mitjançant un flux d'escriptura

A l'exemple següent, el fitxer aleatori s'envia a través del flux llegible i, a continuació, el contingut d'aquest fitxer es col·loca en un altre fitxer disponible al flux d'escriptura:



era fsObj = requereixen ( 'fs' ) ;

const DataStream = fsObj. createReadStream ( 'el meunoufitxer1.txt' ) ;

const writeStream = fsObj. createWriteStream ( 'el meunoufitxer2.txt' ) ;

DataStream. canonada ( writeStream ) ;

Descripció del codi anterior:

  • En primer lloc, el ' fs ' s'importa el mòdul i el seu objecte s'emmagatzema al nou ' fsObj ” variable.
  • A continuació, amb l'ajuda de ' fasObj 'invocar el' createReadStream() ” per crear un flux llegible i passar el fitxer llegible seleccionat com a paràmetre.
  • Aleshores, el flux d'escriptura es crea invocant el ' createWriteStream() ” mètode per escriure el contingut al fitxer proporcionat.
  • Emmagatzemeu els resultats dels mètodes invocats anteriorment al ' DataStream ' i ' writeStream ” variables respectivament.
  • Finalment, invoqueu el '. tub () ' mètode seguit de ' DataStream ' i liderant amb el ' writeStream ' les variables.

Ara, executeu el fitxer que conté (controlFlow.js) executant l'ordre següent:

Exemple 2: escrivint el contingut al fitxer mitjançant el mètode 'stream.write()'.

En aquest exemple, el ' escriure () ” s'utilitza per escriure dades sobre el fitxer disponible a través del flux d'escriptura:

era fsObj = requereixen ( 'fs' ) ;
const httpObj = requereixen ( 'http' ) ;

const serveLocaly = httpObj. createServer ( ( petició, resposta ) => {
provar {
const cellStream = fsObj. createWriteStream ( 'el meunoufitxer2.txt' ) ;
cellStream. escriure ( 'Les dades s'han de col·locar al fitxer de destinació.' ) ;
cellStream. final ( ) ;
resposta. final ( 'Dades escrites mitjançant un flux d'escriptura' )
}
agafar ( error ) {
consola. error ( error ) ;
}
} ) ;
serveLocaly. escolta ( 8080 , ( ) => {
consola. registre ( 'El servidor s'està executant al número de port localhost: '8080'' )
) ;

La descripció del codi anterior és la següent:

  • Primer, importeu el ' fs ' i ' http ” mòduls i emmagatzemar els seus objectes a “ fsObj ' i ' httpObj ” variables respectivament.
  • A continuació, el servidor s'ha creat invocant el ' createServer() ” i emmagatzemar aquest servidor acabat de crear en un “ serveLocaly ” variable.
  • A continuació, utilitzeu un ' provar ” bloc dins de la funció de devolució del mètode i invocar el “ createWriteStream() ” mitjançant el mètode “ fsObj ” variable.
  • Passeu el fitxer de destinació on s'ha d'inserir el contingut, dins d'aquest parèntesi del mètode i emmagatzemeu el resultat al ' cellStream ” variable
  • Utilitzeu el ' escriure () ” amb aquesta variable i passar un missatge fictici dins del seu parèntesi que s'escriurà al fitxer de destinació.
  • Tanqueu el flux invocant el ' final() ” i mostrar un missatge d'èxit a la pàgina web invocant el “ response.end() ” mètode. On ' resposta ' és el paràmetre de devolució de trucada del ' createServer ” mètode.
  • Utilitzeu el ' agafar ” bloc per gestionar els errors produïts.
  • Finalment, escolteu o configureu el servidor sobre el número de port ' 8080 ” i mostra el missatge d'èxit amb l'ajuda de la seva funció de devolució de trucada.

La sortida generada mostra que el text proporcionat s'ha escrit amb el ' escriure () ” mètode:

Exemple 3: escrivint les mateixes dades en diversos fitxers

En aquest exemple, es llegirà un únic fitxer del flux mitjançant el ' createReadStream() ” mètode. Aleshores, el contingut llegit s'escriu en diversos fitxers mitjançant el ' createWriteStream() ' i ' .pipe() 'Mètodes:

era fsObj = requereixen ( 'fs' ) ;

const DataStream = fsObj. createReadStream ( 'el meunoufitxer1.txt' ) ;

const writeStream1 = fsObj. createWriteStream ( 'el meunoufitxer2.txt' ) ;

const writeStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

DataStream. canonada ( writeStream1 ) ;

DataStream. canonada ( writeStream2 ) ;

Al fragment de codi anterior:

  • El ' createReadStream() ” s'invoca el mètode i el fitxer el contingut del qual s'ha de llegir es passa com a paràmetre. El resultat d'aquest mètode s'emmagatzema al ' DataStream ” variable.
  • A continuació, el ' createWriteStream() ” es crida al mètode i es passa el fitxer de destinació com a paràmetre.
  • De la mateixa manera, el camí del segon fitxer també es passa com a flux d'escriptura i els resultats s'emmagatzemen a ' writeStream1 ' i ' writeStream2 ' les variables.
  • Després d'això, utilitzant el ' .pipe() ” mètode el contingut emmagatzemat al “ DataStream La variable s'assigna a la variable writeStream1 ' i ' writeStream2 ' les variables.

La sortida generada mostra que el contingut del fitxer proporcionat s'ha inserit als fitxers proporcionats sobre els fluxos:

Això es tracta del funcionament dels fluxos d'escriptura a Node.js.

Conclusió

Per treballar amb fluxos d'escriptura, el mètode de ' createWriteStream() ' s'invoca mitjançant el ' fs ” objecte mòdul. La ruta del fitxer de destinació on s'ha d'escriure el contingut es passa com a paràmetre. Per escriure el contingut d'un altre flux el ' .pipe() S'utilitza el mètode. El ' escriure () ” El mètode també és útil quan es tracta d'escriure contingut directament al fitxer de destinació. Aquesta publicació ha il·lustrat el procediment per treballar amb fluxos d'escriptura.