Πώς να χρησιμοποιήσετε αναγνώσιμες ροές στο Node.js;

Pos Na Chresimopoiesete Anagnosimes Roes Sto Node Js



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

Αυτός ο οδηγός θα εξηγήσει τη χρήση αναγνώσιμων ροών στο Node.js.

Πώς να χρησιμοποιήσετε αναγνώσιμες ροές στο Node.js;

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







Ρίξτε μια ματιά στο παράδειγμα για μια πρακτική επίδειξη.



Παράδειγμα: Ανάγνωση και εμφάνιση περιεχομένου μέσω διακομιστή με χρήση αναγνώσιμων ροών

Σε αυτό το παράδειγμα, το περιεχόμενο ενός παρεχόμενου αρχείου διαβάζεται και στη συνέχεια εμφανίζεται μέσω του προγράμματος περιήγησης Ιστού:



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

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

συνθ localServer = httpObj. δημιουργία διακομιστή ( ( απαιτώ απάντηση ) => {

δοκιμάστε {
// Στοχευμένο αρχείο για ανάγνωση
συνθ ροή δεδομένων = fsObj. createReadStream ( 'usecase.txt' ) ;
// Σωλήνωση του αρχείου για απόκριση
ροή δεδομένων. σωλήνας ( απάντηση ) ;
} σύλληψη ( Σφάλματα ) {
κονσόλα. λάθος ( Σφάλματα ) ;
}
} ) ;

localServer. ακούω ( 8080 , ( ) => {
κονσόλα. κούτσουρο ( 'Ο διακομιστής εκτελείται στον αριθμό θύρας Localhost: '8080' )
} ) ;

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





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

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

κόμβος controlFlow. js

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



Παράδειγμα 2: Τοπική ανάγνωση στατικών αρχείων με χρήση του ReadStream

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

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

συνθ streamObj = fsObj. createReadStream ( 'usecase.txt' ) ;

streamObj. επί ( 'δεδομένα' , ( περιεχόμενο ) => {

κονσόλα. κούτσουρο ( περιεχόμενο. toString ( ) ) ;

} ) ;

streamObj. επί ( 'τέλος' , ( ) => {

κονσόλα. κούτσουρο ( ' \n Ολοκλήρωσε την ανάγνωση του αρχείου.' ) ;

} ) ;

streamObj. σωλήνας ( επεξεργάζομαι, διαδικασία. stdout ) ;

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

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

Η έξοδος που δημιουργείται μετά την εκτέλεση του παραπάνω κώδικα δείχνει ότι τα δεδομένα ανάγνωσης κατά μήκος του μηνύματος λήξης έχουν εμφανιστεί στην κονσόλα:

Αυτό αφορά τη χρήση αναγνώσιμων ροών στο Node.js.

συμπέρασμα

Για να εργαστείτε με αναγνώσιμες ροές στο Node.js, η μέθοδος ' createReadStream() Το ' καλείται μέσω του ' fs ' αντικείμενο της μονάδας. Η στοχευμένη διαδρομή αρχείου στην οποία πρέπει να γραφτεί το περιεχόμενο μεταβιβάζεται στη συνέχεια ως παράμετρος μεθόδου. Μπορεί να χρησιμοποιηθεί με το « .σωλήνας() ” μέθοδος για την εκτέλεση περαιτέρω εργασιών πάνω από τα ανακτημένα δεδομένα, όπως η εγγραφή του περιεχομένου σε άλλο αρχείο. Αυτή η ανάρτηση επεξηγεί τη διαδικασία εργασίας με αναγνώσιμες ροές.