Πώς να εργαστείτε με εγγράψιμες ροές στο Node.js;

Pos Na Ergasteite Me Engrapsimes Roes Sto Node Js



Τα δεδομένα μεταφέρονται μέσω του δικτύου μεταξύ των τόπων πηγής και προορισμού με τη μορφή ροών. Η πλευρά του αποστολέα αναφέρεται ως η πηγή και η πλευρά του παραλήπτη αναπαρίσταται ως η ροή προορισμού. Χρησιμοποιώντας αυτές τις Ροές, τα δεδομένα σε μορφή κειμένου ή μορφή ήχου ή βίντεο μπορούν να αποσταλούν και να ληφθούν με ελάχιστες πιθανότητες διαρροής ή απώλειας δεδομένων.

Αυτός ο οδηγός εξηγεί την εργασία με εγγράψιμες ροές στο Node.js.

Πώς να εργαστείτε με εγγράψιμες ροές στο Node.js;

Ο ' εγγράψιμο Η ροή μπορεί να χρησιμοποιηθεί για την εισαγωγή νέων δεδομένων στο αρχείο ή μπορεί να τοποθετήσει το περιεχόμενο μιας άλλης τυχαίας ροής. Η μετατροπή ή η τοποθέτηση δεδομένων γίνεται κυρίως με τη βοήθεια του ' σωλήνας() 'μέθοδος. Αυτή η μέθοδος καθιστά τη διαδικασία μετατροπής και εκχώρησης περιεχομένου πιο βολική, ενώ μειώνει τις πιθανότητες σύγκρουσης δεδομένων.







Σύνταξη



Η εγγράψιμη ροή δημιουργείται χρησιμοποιώντας την παρακάτω μέθοδο:



fs. createWriteStream ( 'targetFile.ext' ) ;

Στην παραπάνω σύνταξη, το « creatWriteStream() ' επικαλείται το αντικείμενο του εισαγόμενου ' fs ενότητα, και το αρχείο στο οποίο πρόκειται να γραφτούν τα δεδομένα μεταβιβάζεται ως παράμετρος.





Ας ρίξουμε μια ματιά σε μερικά παραδείγματα για εγγράψιμες ροές στο Node.js.

Παράδειγμα 1: Γράψτε το περιεχόμενο ενός άλλου αρχείου χρησιμοποιώντας μια ροή με δυνατότητα εγγραφής

Στο παρακάτω παράδειγμα, το τυχαίο αρχείο αποστέλλεται μέσω της αναγνώσιμης ροής και, στη συνέχεια, αυτό το περιεχόμενο του αρχείου τοποθετείται σε ένα άλλο αρχείο που είναι διαθέσιμο στην εγγράψιμη ροή:



ήταν το fsObj = απαιτώ ( 'fs' ) ;

συνθ ροή δεδομένων = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

συνθ writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

ροή δεδομένων. σωλήνας ( writeStream ) ;

Περιγραφή του παραπάνω κώδικα:

  • Πρώτον, το « fs ' Η μονάδα εισάγεται και το αντικείμενό της αποθηκεύεται στο νέο ' fsObj ” μεταβλητή.
  • Στη συνέχεια, με τη βοήθεια του ' fasObj 'επικαλέστε το ' createReadStream() ” μέθοδο για τη δημιουργία μιας αναγνώσιμης ροής και περάστε το επιλεγμένο αναγνώσιμο αρχείο ως παράμετρό του.
  • Στη συνέχεια, η εγγράψιμη ροή δημιουργείται με την επίκληση του ' createWriteStream() ” μέθοδο εγγραφής του περιεχομένου στο παρεχόμενο αρχείο.
  • Αποθηκεύστε τα αποτελέσματα των παραπάνω μεθόδων στο ' ροή δεδομένων ' και ' writeStream ” μεταβλητές αντίστοιχα.
  • Τέλος, επικαλέστε το «. σωλήνας() ' μέθοδος που ακολουθείται από ' ροή δεδομένων » και οδηγεί με το « writeStream ' μεταβλητές.

Τώρα, εκτελέστε το αρχείο που περιέχει (controlFlow.js) εκτελώντας την παρακάτω εντολή:

Παράδειγμα 2: Εγγραφή του περιεχομένου σε αρχείο χρησιμοποιώντας τη μέθοδο 'stream.write()'

Σε αυτό το παράδειγμα, το « γράφω() Η μέθοδος ' χρησιμοποιείται για την εγγραφή δεδομένων πάνω από το αρχείο που είναι διαθέσιμο μέσω του εγγράψιμου Stream:

ήταν το fsObj = απαιτώ ( 'fs' ) ;
συνθ httpObj = απαιτώ ( 'http' ) ;

συνθ εξυπηρετούν τοπικά = httpObj. δημιουργία διακομιστή ( ( απαιτώ απάντηση ) => {
δοκιμάστε {
συνθ cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. γράφω ( 'Δεδομένα που θα τοποθετηθούν στο στοχευμένο αρχείο.' ) ;
cellStream. τέλος ( ) ;
απάντηση. τέλος ( 'Δεδομένα που γράφτηκαν μέσω εγγράψιμη ροή' )
}
σύλληψη ( λάθος ) {
κονσόλα. λάθος ( λάθος ) ;
}
} ) ;
εξυπηρετούν τοπικά. ακούω ( 8080 , ( ) => {
κονσόλα. κούτσουρο ( 'Ο διακομιστής εκτελείται στον αριθμό θύρας Localhost: '8080' )
) ;

Η περιγραφή του παραπάνω κώδικα έχει ως εξής:

  • Πρώτα, εισαγάγετε το απαιτούμενο ' fs ' και ' http ' modules και αποθηκεύστε τα αντικείμενά τους σε ' fsObj ' και ' httpObj ” μεταβλητές αντίστοιχα.
  • Στη συνέχεια, ο διακομιστής έχει δημιουργηθεί με την κλήση του ' createServer() ' μέθοδος και αποθήκευση αυτού του πρόσφατα δημιουργημένου διακομιστή σε ' εξυπηρετούν τοπικά ” μεταβλητή.
  • Στη συνέχεια, χρησιμοποιήστε ένα ' δοκιμάστε ' αποκλείστε μέσα στη συνάρτηση επανάκλησης μεθόδου και καλέστε το ' createWriteStream() μέθοδος που χρησιμοποιεί το « fsObj ” μεταβλητή.
  • Περάστε το στοχευμένο αρχείο στο οποίο πρέπει να εισαχθεί το περιεχόμενο, μέσα στην παρένθεση αυτής της μεθόδου και αποθηκεύστε το αποτέλεσμα στο ' cellStream ” μεταβλητή
  • Χρησιμοποιήστε το ' γράφω() ” μέθοδος με αυτή τη μεταβλητή και περάστε ένα εικονικό μήνυμα μέσα στην παρένθεση του, το οποίο θα γραφτεί στο στοχευμένο αρχείο.
  • Κλείστε το Stream επικαλούμενοι το ' τέλος() ' και εμφανίστε ένα μήνυμα επιτυχίας στην ιστοσελίδα επικαλώντας το ' answer.end() 'μέθοδος. Οπου ' απάντηση ' είναι η παράμετρος επανάκλησης του ' δημιουργία διακομιστή 'μέθοδος.
  • Χρησιμοποιήστε το ' σύλληψη ' μπλοκ για τη διαχείριση τυχόν σφαλμάτων.
  • Τέλος, ακούστε ή ρυθμίστε τον διακομιστή πάνω από τον αριθμό θύρας ' 8080 ” και εμφανίζει το μήνυμα επιτυχίας με τη βοήθεια της λειτουργίας επανάκλησης.

Η παραγόμενη έξοδος δείχνει ότι το παρεχόμενο κείμενο έχει γραφτεί χρησιμοποιώντας το ' γράφω() 'μέθοδος:

Παράδειγμα 3: Εγγραφή των ίδιων δεδομένων σε πολλά αρχεία

Σε αυτό το παράδειγμα, ένα μεμονωμένο αρχείο πρόκειται να διαβαστεί από τη ροή χρησιμοποιώντας το ' createReadStream() 'μέθοδος. Στη συνέχεια, το αναγνωσμένο περιεχόμενο γράφεται σε πολλά αρχεία χρησιμοποιώντας το ' createWriteStream() ' και ' .σωλήνας() » μέθοδοι:

ήταν το fsObj = απαιτώ ( 'fs' ) ;

συνθ ροή δεδομένων = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

συνθ writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

συνθ writeStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

ροή δεδομένων. σωλήνας ( writeStream1 ) ;

ροή δεδομένων. σωλήνας ( writeStream2 ) ;

Στο παραπάνω απόσπασμα κώδικα:

  • Ο ' createReadStream() Η μέθοδος ” καλείται και το αρχείο του οποίου το περιεχόμενο πρέπει να διαβαστεί μεταβιβάζεται ως παράμετρός του. Το αποτέλεσμα αυτής της μεθόδου αποθηκεύεται στο ' ροή δεδομένων ” μεταβλητή.
  • Στη συνέχεια, το « createWriteStream() » καλείται η μέθοδος και το στοχευμένο αρχείο μεταβιβάζεται ως παράμετρός της.
  • Με τον ίδιο τρόπο, η διαδρομή για το δεύτερο αρχείο μεταβιβάζεται επίσης ως εγγράψιμη ροή και τα αποτελέσματα αποθηκεύονται στο ' writeStream1 ' και ' writeStream2 ' μεταβλητές.
  • Μετά από αυτό, χρησιμοποιώντας το ' .σωλήνας() ' μέθοδος το περιεχόμενο που είναι αποθηκευμένο στο ' ροή δεδομένων Η μεταβλητή ' έχει εκχωρηθεί στο ' writeStream1 ' και ' writeStream2 ' μεταβλητές.

Η παραγόμενη έξοδος δείχνει ότι το παρεχόμενο περιεχόμενο αρχείου έχει εισαχθεί στα παρεχόμενα αρχεία μέσω των ροών:

Αυτό αφορά τη λειτουργία των εγγράψιμων ροών στο Node.js.

συμπέρασμα

Για να εργαστείτε με εγγράψιμες ροές, η μέθοδος ' createWriteStream() Το ' καλείται μέσω του ' fs ' αντικείμενο της μονάδας. Η στοχευμένη διαδρομή αρχείου στην οποία πρέπει να γραφτεί το περιεχόμενο μεταβιβάζεται ως παράμετρός του. Για να γράψετε το περιεχόμενο από άλλη ροή, το ' .σωλήνας() Χρησιμοποιείται η μέθοδος. Ο ' γράφω() Η μέθοδος είναι επίσης χρήσιμη όταν πρόκειται να γράψετε περιεχόμενο απευθείας στο στοχευμένο αρχείο. Αυτή η ανάρτηση επεξηγεί τη διαδικασία εργασίας με εγγράψιμες ροές.