כיצד לקרוא קלט רצוף עם מודול Node.js Readline?

Kyzd Lqrw Qlt Rzwp M Mwdwl Node Js Readline



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

כתיבה זו מסבירה את ההליך לקריאת הקלט הרצוף עם מודול readline של nodejs.

כיצד לקרוא קלט רצוף עם מודול Readline Node.js?

הקלט הרצוף הוא זה שלוקח ומאחסן את התשובות למספר שאלות בו-זמנית באופן רציף. שאילתות רצופות אלו נשאלות בעיקר בזמן הצטרפות לקורסים מסוימים או בזמן האימות. להלן מספר דוגמאות ליישום של קריאת קלט רצוף באמצעות מודול קו הקריאה Node.js.







דוגמה 1: קריאת קלט רצוף באמצעות מודול Readline ומערכים

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



const קריאת שורה = לִדרוֹשׁ ( 'קריאת שורה' ) ;

const ממשק readline = קריאת שורה. ליצור ממשק ( {

קֶלֶט : תהליך. סטדין ,

תְפוּקָה : תהליך. stdout

} )

const req0 = 'מאי! אני יודע את הכינוי שלך?' ;

const req1 = 'מה התחביב שלך' ;

const req2 = 'מה אתה אוהב להקשיב' ;

const req3 = 'מאי! אני מכיר את המנה האהובה עליך?' ;

const req4 = 'איפה את גר?' ;

const req5 = 'מה הצבע האהוב עליך' ;

const req6 = 'מי החבר הכי טוב שלך' ;

const reqArr = [ req0, req1, req2, req3, req4, req5, req6 ] ;

תן למיל = '' ;

const reqData = איקס => {

אם ( איקס < reqArr. אורך ) {

ממשק readline. שְׁאֵלָה ( reqArr [ איקס ] , ( reqResponse ) => {

מילואים += ' \n ' + reqResponse ;

reqData ( איקס + 1 ) ;

} ) ;

} אַחֵר {

לְנַחֵם. עֵץ ( `תודה ל משתף אותי ! $ { מילואים } ` ) ;

ממשק readline. סגור ( ) ;

}

} ;

reqData ( 0 ) ;

תיאור הקוד המשמש בקטע הקוד שלמעלה מצוין להלן:



  • התחל על ידי ייבוא ​​' קריאת שורה ' מודול ואחסן את האובייקט שלו במשתנה בשם ' קריאת שורה '.
  • לאחר מכן, צור ממשק בשם ' ממשק readline ' בשביל ה ' קריאת שורה ' אובייקט העוטף את תהליך הקלט והפלט הסטנדרטי באמצעות ' createInterface() ' שיטה. זה גם משייך כל בקשה ותגובה לזרם קלט יחיד הניתן לקריאה ופלט לכתיבה באמצעות ' תהליך ' תכונה.
  • לאחר מכן, צור שבעה ' const ' הקלד משתנים כדי לאחסן כמה בקשות או שאלות שצריך לשאול ברציפות. אחסן את הקבועים האלה במערך היחיד בשם ' reqArr '.
  • צור משתנה ריק חדש ' מילואים ', הגדר פונקציית חץ בשם ' reqData ' והעבירו את הפרמטר היחיד של ' איקס '.
  • בתוך פונקציה זו, השתמש ב' אם ' משפט שבודק אם הערך של הפרמטר שסופק קטן מהאורך של ' reqArr ' או שלא.
  • במקרה של אמת, ה' שְׁאֵלָה() השיטה מיושמת על הממשק והיא מציגה כל בקשה מהמערך על פני הפלט ברצף. ואז הוא מעביר את הערכים המתאימים שלהם כארגומנט.
  • הארגומנטים האלה מאוחסנים במערך שכבר נוצר ' מילואים '.
  • ברגע שכל הבקשות מוצגות ברצף על גבי המסוף אז המצב של ' אם ' ההצהרה מקבלת שקר וב' אַחֵר 'חלק, ה' מילואים מערך מוצג מעל הקונסולה.
  • לבסוף, ממשק ה-readline גם נסגר על ידי הפעלת ה-' סגור() ' שיטה. כמו כן, הפעל את ' reqData() ' פונקציה והעברת ערך התחלתי של ' 0 ' כדי להתחיל את השאלה מלמעלה או מהשאלה הראשונה הזמינה במערך.

כעת, בצע את הקובץ המכיל הזה על ידי הזנת ' צוֹמֶת ' מילת המפתח מאחורי ' שם קובץ ' בטרמינל:





לכתוב צומת

הפלט מראה שהתוכנית קראה את התשומות הרצופות והחזירה את כולם בבת אחת:

דוגמה 2: קריאת קלט רצוף באמצעות מודול Readline ופונקציה רקורסיבית

בשיטה, נעשה שימוש בגישה הרקורסיבית עם ה' קריאת שורה ” מודול Node.js לקריאת התשומות הרצופות מהמשתמש בזרם הקלט:



const לקרוא = לִדרוֹשׁ ( 'קריאת שורה' ) ;
const ממשק readline = לקרוא. ליצור ממשק ( {
קֶלֶט : תהליך. סטדין ,
תְפוּקָה : תהליך. stdout
} )
היה דרש = [ ]
פונקציה reqData ( איקס ) {
אם ( איקס > 3 )
{
var ממוצע = 0
ל ( j ב-reqArr )
{
מְמוּצָע += מספר ( reqArr [ י ] )
}
לְנַחֵם. עֵץ ( מְמוּצָע / 3 ) ;
}
אַחֵר
{
ממשק readline. שְׁאֵלָה ( 'להיכנס ל ' + איקס + 'מספר מתוך 3:' ,    פונקציה ( reqResponse ) {
reqArr. לִדחוֹף ( reqResponse )
reqData ( איקס + 1 )
} )
}
}

reqData ( 1 ) ;

ההסבר לקוד לעיל מתואר להלן בצורה של נקודות תבליט:

  • ראשית, ייבא את ' קריאת שורה 'בחדש שנוצר' write.js ' קובץ ואחסן את אובייקט השיטה ב' לקרוא 'משתנה. צור ממשק המאחסן את ' קריאת שורה ממשק ' שנוצר באמצעות ' createInterface() ' שיטה.
  • כעת, צור מערך ריק בשם ' reqArr ' ולהגדיר את ' reqData() פונקציה שמקבלת גם פרמטר בודד בשם ' איקס '.
  • הפונקציה בודקת תחילה אם הערך שסופק גדול מ' 3 ' או שלא. במקרה של true, הערכים שאוחזרו שמגיעים ב-' איקס ' המשתנה מאוחסן במערך ומתווסף למשתנה הבודד בשם ' מְמוּצָע '.
  • לאחר מכן, ה' מְמוּצָע המשתנה מחולק ב- 3 ' כדי למצוא את הממוצע שכן אורך המספר המרבי המותר הוא ' 3 ' והתוצאה מוצגת בקונסולה.
  • בחלק השני, ה' שְׁאֵלָה() 'שיטה מצורפת עם הממשק' readlineInerface '. שיטה זו מציגה את ההודעה דרך המסוף ומגדירה פונקציה אנונימית.
  • הפונקציה מקבלת את נתוני הקלט של המשתמש ומוסיפה את הנתונים למערך ' reqArr '. זה גם מעדכן את הערך של ' איקס ' בכל פעם ומעביר את הערך המעודכן ל' reqData() ' פונקציה. זה יוודא שהמשתמש יזין רק ערכים פחות משלושה החל מ' 0 '. לבסוף, הפעל את ' reqData() ' פונקציה כדי להתחיל את תהליך הביצוע.

כעת, בצע את זה המכיל את ' write.js ' על ידי הזנת הקובץ ' צוֹמֶת ' מילת המפתח מאחורי ' שם קובץ ' בטרמינל:

לכתוב צומת

הפלט מאשר שכניסות רצופות נקראות והממוצע שלהן מוצג על פני המסוף באמצעות השילוב של גישה רקורסיבית ומודול קו קריאה:

מדריך זה מסביר את ההליך לקריאת קלט רצוף עם מודול קו הקריאה של Node.js.

סיכום

כדי לקרוא את הקלט הרצוף עם מודול קו הקריאה של Node.js, תחילה ייבא מודול זה לקובץ עבודה וצור ממשק באמצעות ' createInterface() ' שיטה. ממשק זה מפעיל את ' שְׁאֵלָה() ' שיטה. הוא שולח בקשות למשתמש ברציפות ומעביר את התגובות המתאימות של כל בקשה לפונקציית ה-callback כדי להחיל כמה פעולות בהתאם לדרישות. למדת את התהליך של קריאת קלט רצוף באמצעות מודול הקריאה.