כיצד לעבוד עם זרמים לכתיבה ב-Node.js?

Kyzd L Bwd M Zrmym Lktybh B Node Js



הנתונים מועברים דרך הרשת בין מקומות מקור ויעד בצורה של זרמים. צד השולח מכונה המקור וצד המקבל מיוצג כזרם היעד. באמצעות זרמים אלה, ניתן לשלוח ולקבל את הנתונים בצורה טקסטואלית או בפורמט אודיו או וידאו עם סיכויים מינימליים לדליפה או אובדן נתונים.

מדריך זה מסביר את העבודה עם זרמים הניתנים לכתיבה ב-Node.js.

כיצד לעבוד עם זרמים לכתיבה ב-Node.js?

ה ' ניתן לכתיבה ' זרם יכול לשמש כדי להוסיף נתונים חדשים לקובץ או יכול למקם את התוכן של זרם אקראי אחר. המרת הנתונים או מיקום הנתונים מתרחשים בעיקר בעזרת ' צינור() ' שיטה. שיטה זו הופכת את תהליך ההמרה וההקצאה לתוכן נוח יותר תוך הפחתת הסיכויים להתנגשות נתונים.







תחביר



הזרם הניתן לכתיבה נוצר על ידי הפעלת השיטה הבאה:



fs. createWriteStream ( 'targetFile.ext' ) ;

בתחביר לעיל, ה-' creatWriteStream() ' מופעל על ידי אובייקט ה-' המיובא fs ” מודול, והקובץ עליו ייכתבו הנתונים מועבר כפרמטר.





בואו נסתכל על כמה דוגמאות לזרמים הניתנים לכתיבה ב-Node.js.

דוגמה 1: כתיבת תוכן של קובץ אחר באמצעות זרם לכתיבה

בדוגמה שלמטה, הקובץ האקראי נשלח דרך הזרם הניתן לקריאה, ולאחר מכן תוכן הקובץ הזה מונח בקובץ אחר זמין בזרם הניתן לכתיבה:



היה fsObj = לִדרוֹשׁ ( 'fs' ) ;

const זרם נתונים = fsObj. ליצורReadStream ( 'mynewfile1.txt' ) ;

const writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

זרם נתונים. צינור ( writeStream ) ;

תיאור הקוד לעיל:

  • קודם ה ' fs ' מודול מיובא והאובייקט שלו מאוחסן ב' החדש ' fsObj 'משתנה.
  • לאחר מכן, בעזרת ' fasObj ' להפעיל את ' createReadStream() ' שיטה ליצירת זרם קריא ולהעביר את הקובץ הקריא הנבחר כפרמטר שלו.
  • לאחר מכן, הזרם הניתן לכתיבה נוצר על ידי הפעלת ה-' createWriteStream() ' שיטה לכתוב את התוכן בקובץ שסופק.
  • אחסן את התוצאות של השיטות שהופעלו לעיל ב' זרם נתונים ' ו' writeStream ' משתנים בהתאמה.
  • לבסוף, הפעל את '. צינור() שיטת ' ואחריה ' זרם נתונים ' ומוביל עם ' writeStream ' משתנים.

כעת, הפעל את הקובץ המכיל (controlFlow.js) על ידי הפעלת הפקודה שלהלן:

דוגמה 2: כתיבת התוכן לקובץ באמצעות שיטת 'stream.write()'.

בדוגמה זו, ' לִכתוֹב() שיטת ' משמשת לכתיבת נתונים על הקובץ הזמין על הזרם הניתן לכתיבה:

היה fsObj = לִדרוֹשׁ ( 'fs' ) ;
const httpObj = לִדרוֹשׁ ( 'http' ) ;

const לשרת מקומי = httpObj. createServer ( ( בקשת תגובה ) => {
לְנַסוֹת {
const cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. לִכתוֹב ( 'נתונים שיוצבו בקובץ הממוקד.' ) ;
cellStream. סוֹף ( ) ;
תְגוּבָה. סוֹף ( 'נתונים נכתבים באמצעות זרם לכתיבה' )
}
לתפוס ( שְׁגִיאָה ) {
לְנַחֵם. שְׁגִיאָה ( שְׁגִיאָה ) ;
}
} ) ;
לשרת מקומי. להקשיב ( 8080 , ( ) => {
לְנַחֵם. עֵץ ( 'השרת פועל על מספר יציאת Localhost: '8080' ' )
) ;

התיאור של הקוד לעיל הוא כדלקמן:

  • ראשית, ייבא את ' fs ' ו' http 'מודולים ולאחסן את האובייקטים שלהם ב' fsObj ' ו' httpObj ' משתנים בהתאמה.
  • לאחר מכן, השרת נוצר על ידי הפעלת ה-' createServer() שיטת ' ואחסון השרת החדש שנוצר ב' לשרת מקומי 'משתנה.
  • לאחר מכן, השתמש ב-' לְנַסוֹת ' לחסום בתוך פונקציית ההתקשרות חזרה של השיטה ולהפעיל את ' createWriteStream() שיטת ' באמצעות ' fsObj 'משתנה.
  • העבירו את הקובץ הממוקד עליו צריך להכניס את התוכן, בתוך סוגריים של שיטה זו ואחסנו את התוצאה ב' cellStream 'משתנה
  • השתמש ב' לִכתוֹב() ” שיטה עם המשתנה הזה והעבירו הודעת דמה בתוך הסוגרייה שלו שתכתוב בקובץ הממוקד.
  • סגור את הזרם על ידי הפעלת ה' סוֹף() ' השיטה והצג הודעת הצלחה בדף האינטרנט על ידי הפעלת ה' response.end() ' שיטה. איפה ' תְגוּבָה ' הוא פרמטר ההתקשרות חזרה של ' createServer ' שיטה.
  • השתמש ב' לתפוס ' לחסום כדי לטפל בשגיאות שהתרחשו.
  • לבסוף, האזן או הגדר את השרת על מספר היציאה ' 8080 ' ולהציג את הודעת ההצלחה בעזרת פונקציית ההתקשרות חזרה שלו.

הפלט שנוצר מראה שהטקסט שסופק נכתב באמצעות ' לִכתוֹב() ' שיטה:

דוגמה 3: כתיבת אותם נתונים על מספר קבצים

בדוגמה זו, קובץ בודד ייקרא מהזרם באמצעות ' createReadStream() ' שיטה. לאחר מכן, התוכן הנקרא נכתב על פני מספר קבצים באמצעות ' createWriteStream() ' ו' .צינור() ' שיטות:

היה fsObj = לִדרוֹשׁ ( 'fs' ) ;

const זרם נתונים = fsObj. ליצורReadStream ( 'mynewfile1.txt' ) ;

const writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

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

זרם נתונים. צינור ( writeStream1 ) ;

זרם נתונים. צינור ( writeStream2 ) ;

בקטע הקוד שלמעלה:

  • ה ' createReadStream() מופעלת השיטה והקובץ שאת תוכנו צריך לקרוא מועבר כפרמטר שלו. התוצאה של שיטה זו מאוחסנת ב' זרם נתונים 'משתנה.
  • לאחר מכן, ה' createWriteStream() נקראת השיטה והקובץ הממוקד מועבר כפרמטר שלו.
  • באותו אופן, הנתיב של הקובץ השני מועבר גם כזרם לכתיבה והתוצאות מאוחסנות ב' writeStream1 ' ו' writeStream2 ' משתנים.
  • לאחר מכן, באמצעות ' .צינור() ' שיטת התוכן המאוחסן ב' זרם נתונים משתנה ' מוקצה ל' writeStream1 ' ו' writeStream2 ' משתנים.

הפלט שנוצר מראה שתוכן הקובץ שסופק הוכנס לקבצים שסופקו דרך הזרמים:

זה הכל לגבי העבודה של זרמים לכתיבה ב-Node.js.

סיכום

כדי לעבוד עם זרמים הניתנים לכתיבה, השיטה של ​​' createWriteStream() ' מופעל באמצעות ' fs אובייקט מודול. נתיב הקובץ הממוקד עליו צריך לכתוב את התוכן מועבר כפרמטר שלו. כדי לכתוב את התוכן מזרם אחר יש ' .צינור() נעשה שימוש בשיטה. ה ' לִכתוֹב() השיטה מועילה גם כשמדובר בכתיבת תוכן ישירות על הקובץ הממוקד. פוסט זה המחיש את הליך העבודה עם זרמים הניתנים לכתיבה.