จะอ่านอินพุตต่อเนื่องกันด้วยโมดูล Readline ของ Node.js ได้อย่างไร

Ca Xan Xinphut Tx Neuxng Kan Dwy Modul Readline Khxng Node Js Di Xyangri



อ่านบรรทัด ” โมดูล Node.js เหมาะอย่างยิ่งที่จะใช้ในสถานการณ์ที่ผู้ใช้ปลายทางจำเป็นต้องรับอินพุตต่อเนื่องกันมากกว่าหนึ่งรายการ โมดูลนี้จะล้อมเอาต์พุตมาตรฐานและอินพุตซึ่งช่วยในการอ่านสตรีมอินพุตทีละบรรทัดโดยไม่ข้ามข้อมูลที่ได้รับใดๆ ด้วยการมาของ “ อ่านบรรทัด ” ขั้นตอนในการดึงข้อมูลแบบเรียลไทม์จะง่ายขึ้นและเร็วขึ้นมาก

บทความนี้จะอธิบายขั้นตอนในการอ่านอินพุตต่อเนื่องกันด้วยโมดูล nodejs readline

จะอ่านอินพุตต่อเนื่องกันด้วยโมดูล Readline ของ Node.js ได้อย่างไร

ข้อมูลเข้าที่ต่อเนื่องกันคือข้อมูลที่ใช้และจัดเก็บคำตอบสำหรับคำถามหลายข้อพร้อมกันในลักษณะตามลำดับ คำถามต่อเนื่องเหล่านี้ส่วนใหญ่จะถามขณะเข้าร่วมบางหลักสูตรหรือในขณะที่ตรวจสอบ ตัวอย่างบางส่วนมีการระบุไว้ด้านล่างสำหรับการดำเนินการอ่านอินพุตต่อเนื่องโดยใช้โมดูลบรรทัดอ่าน Node.js







ตัวอย่างที่ 1: การอ่านอินพุตต่อเนื่องโดยใช้โมดูล Readline และอาร์เรย์

ในตัวอย่างนี้ อินพุตที่ต่อเนื่องกันจะถูกรับและอ่านโดยใช้เครื่องหมาย “ อ่านบรรทัด ' โมดูล. อินพุตจะถูกเก็บไว้ในอาร์เรย์จากตำแหน่งที่แสดงบนคอนโซล:



ค่าคงที่ อ่านบรรทัด = จำเป็นต้อง ( 'อ่านไลน์' ) ;

ค่าคงที่ อินเทอร์เฟซแบบอ่านไลน์ = อ่านบรรทัด สร้างอินเทอร์เฟซ ( {

ป้อนข้อมูล : : กระบวนการ. มาตรฐาน ,

เอาท์พุท : : กระบวนการ. มาตรฐาน

} )

ค่าคงที่ คำขอ0 = 'อาจ! ฉันรู้ชื่อเล่นของคุณเหรอ? ;

ค่าคงที่ คำขอ 1 = 'งานอดิเรกของคุณคืออะไร' ;

ค่าคงที่ คำขอ2 = 'คุณชอบฟังอะไร' ;

ค่าคงที่ คำขอ 3 = 'อาจ! ฉันรู้จักอาหารจานโปรดของคุณเหรอ? ;

ค่าคงที่ คำขอ4 = 'คุณอาศัยอยู่ที่ใด?' ;

ค่าคงที่ คำขอ 5 = 'คุณชอบสีอะไร' ;

ค่าคงที่ คำขอ6 = 'ใครคือเพื่อนที่ดีที่สุดของคุณ' ;

ค่าคงที่ คำขอ = [ req0, req1, req2, req3, req4, req5, req6 ] ;

ให้ตอบอีกครั้ง = '' ;

ค่าคงที่ ขอข้อมูล = x => {

ถ้า ( x < คำขอ ความยาว ) {

อินเทอร์เฟซแบบอ่านไลน์ คำถาม ( คำขอ [ x ] , ( คำขอการตอบสนอง ) => {

ความละเอียด += ' \n ' + คำขอการตอบสนอง ;

ขอข้อมูล ( x + 1 ) ;

} ) ;

} อื่น {

คอนโซล บันทึก ( `ขอบคุณ สำหรับ แบ่งปันกับฉัน ! $ { ความละเอียด } ` ) ;

อินเทอร์เฟซแบบอ่านไลน์ ปิด ( ) ;

}

} ;

ขอข้อมูล ( 0 ) ;

คำอธิบายของโค้ดที่ใช้ในข้อมูลโค้ดข้างต้นระบุไว้ด้านล่าง:



  • เริ่มต้นด้วยการนำเข้า “ อ่านบรรทัด ” โมดูลและเก็บวัตถุไว้ในตัวแปรชื่อ “ อ่านบรรทัด '.
  • จากนั้นสร้างอินเทอร์เฟซชื่อ “ อินเทอร์เฟซแบบอ่านไลน์ ” สำหรับ “ อ่านบรรทัด ” วัตถุที่ล้อมรอบกระบวนการอินพุตและเอาท์พุตมาตรฐานโดยใช้เครื่องหมาย “ สร้างอินเทอร์เฟซ() ' วิธี. นอกจากนี้ยังเชื่อมโยงทุกคำขอและการตอบกลับด้วยสตรีมอินพุตเดียวที่สามารถอ่านได้และเอาต์พุตที่เขียนได้โดยใช้ ' กระบวนการ ' คุณสมบัติ.
  • แล้วจึงสร้างเจ็ด” ค่าคงที่ ” พิมพ์ตัวแปรเพื่อจัดเก็บคำขอหรือคำถามที่ต้องถามติดต่อกัน เก็บค่าคงที่เหล่านี้ไว้ในอาร์เรย์เดียวที่ชื่อว่า “ คำขอ '.
  • สร้างตัวแปรว่างใหม่” ความละเอียด ” ให้กำหนดฟังก์ชันลูกศรชื่อ “ ขอข้อมูล ” และส่งพารามิเตอร์ตัวเดียวของ “ x '.
  • ภายในฟังก์ชันนี้ ให้ใช้ ' ถ้า ” คำสั่งที่ตรวจสอบว่าค่าของพารามิเตอร์ที่ให้มาน้อยกว่าความยาวของ “ คำขอ ' หรือไม่.
  • ในกรณีที่เป็นความจริง “ คำถาม() ” วิธีการถูกนำไปใช้กับอินเทอร์เฟซและจะแสดงแต่ละคำขอจากอาร์เรย์บนเอาต์พุตตามลำดับ จากนั้นจะส่งผ่านค่าที่ระบุที่สอดคล้องกันเป็นอาร์กิวเมนต์
  • อาร์กิวเมนต์เหล่านี้ถูกเก็บไว้ในอาร์เรย์ที่สร้างไว้แล้ว” ความละเอียด '.
  • เมื่อคำขอทั้งหมดแสดงตามลำดับบนคอนโซล จากนั้นจะมีเงื่อนไขเป็น “ ถ้า ” คำสั่งได้รับเท็จและใน “ อื่น ” ส่วน “ ความละเอียด ” อาร์เรย์ถูกแสดงบนคอนโซล
  • สุดท้ายนี้ อินเทอร์เฟซ readline ก็ถูกปิดด้วยการเรียกใช้ ' ปิด() ' วิธี. นอกจากนี้ให้เรียกใช้ ' ขอข้อมูล() ” ทำหน้าที่และส่งผ่านค่าเริ่มต้นเป็น “ 0 ” เพื่อเริ่มคำถามจากด้านบนหรือจากคำถามแรกที่มีอยู่ในอาร์เรย์

ตอนนี้ให้รันไฟล์ที่มีสิ่งนี้โดยป้อน “ โหนด ” คำหลักเบื้องหลัง “ ชื่อไฟล์ ” บนเทอร์มินัล:





โหนดเขียน

ผลลัพธ์แสดงว่าโปรแกรมได้อ่านอินพุตที่ต่อเนื่องกันและส่งคืนทั้งหมดในครั้งเดียว:

ตัวอย่างที่ 2: การอ่านอินพุตที่ต่อเนื่องกันโดยใช้โมดูล Readline และฟังก์ชันแบบเรียกซ้ำ

ในวิธีการนั้นจะใช้วิธีเรียกซ้ำกับ “ อ่านบรรทัด ” โมดูล Node.js เพื่ออ่านอินพุตต่อเนื่องจากผู้ใช้ในสตรีมอินพุต:



ค่าคงที่ อ่าน = จำเป็นต้อง ( 'อ่านไลน์' ) ;
ค่าคงที่ อินเทอร์เฟซแบบอ่านไลน์ = อ่าน. สร้างอินเทอร์เฟซ ( {
ป้อนข้อมูล : : กระบวนการ. มาตรฐาน ,
เอาท์พุท : : กระบวนการ. มาตรฐาน
} )
เป็น reqArr = [ ]
ฟังก์ชั่น reqData ( x ) {
ถ้า ( x > 3 )
{
ค่าเฉลี่ยที่แตกต่างกัน = 0
สำหรับ ( j ใน reqArr )
{
เฉลี่ย += ตัวเลข ( คำขอ [ เจ ] )
}
คอนโซล บันทึก ( เฉลี่ย / 3 ) ;
}
อื่น
{
อินเทอร์เฟซแบบอ่านไลน์ คำถาม ( 'ป้อน' + x + 'หมายเลขจาก 3:' , การทำงาน ( คำขอการตอบสนอง ) {
คำขอ ดัน ( คำขอการตอบสนอง )
ขอข้อมูล ( x + 1 )
} )
}
}

ขอข้อมูล ( 1 ) ;

คำอธิบายสำหรับโค้ดข้างต้นอธิบายไว้ด้านล่างในรูปแบบของสัญลักษณ์แสดงหัวข้อย่อย:

  • ขั้นแรก นำเข้า ' อ่านบรรทัด ” ในรูปแบบที่สร้างขึ้นใหม่ “ write.js ” ไฟล์และจัดเก็บวัตถุวิธีการไว้ใน “ อ่าน ' ตัวแปร. สร้างอินเทอร์เฟซที่จัดเก็บ “ อ่านบรรทัด ” อินเทอร์เฟซที่สร้างขึ้นผ่านทาง “ สร้างอินเทอร์เฟซ() ' วิธี.
  • ตอนนี้สร้างอาร์เรย์ว่างชื่อ “ คำขอ ” และกำหนด “ ขอข้อมูล() ” ฟังก์ชันที่ยอมรับพารามิเตอร์ตัวเดียวชื่อ “ x '.
  • ฟังก์ชันจะตรวจสอบก่อนว่าค่าที่ให้มามากกว่า “ 3 ' หรือไม่. ในกรณีเป็นจริง ค่าที่ดึงมาจะมาใน ' x ” ตัวแปรจะถูกเก็บไว้ในอาร์เรย์และเพิ่มลงในตัวแปรเดี่ยวชื่อ “ เฉลี่ย '.
  • หลังจากนั้น “ เฉลี่ย ” ตัวแปรถูกหารด้วย “ 3 ” เพื่อค้นหาค่าเฉลี่ยตามความยาวของตัวเลขสูงสุดที่อนุญาตคือ “ 3 ” และผลลัพธ์จะแสดงบนคอนโซล
  • ในส่วนอื่นนั้น “ คำถาม() ” วิธีการแนบมากับอินเทอร์เฟซ “ readlineอินเทอร์เฟซ '. วิธีการนี้จะแสดงข้อความบนคอนโซลและกำหนดฟังก์ชันที่ไม่ระบุชื่อ
  • ฟังก์ชั่นยอมรับข้อมูลที่ผู้ใช้ป้อนและเพิ่มข้อมูลนั้นลงในอาร์เรย์ “ คำขอ '. อีกทั้งยังอัพเดตค่าของ “ x ” แต่ละครั้งและส่งผ่านค่าที่อัพเดตไปที่ “ ขอข้อมูล() ' การทำงาน. สิ่งนี้จะทำให้แน่ใจว่าผู้ใช้ป้อนเฉพาะค่าที่น้อยกว่าสามโดยเริ่มจาก “ 0 '. สุดท้ายให้เรียกใช้ ' ขอข้อมูล() ” ฟังก์ชั่นเพื่อเริ่มกระบวนการดำเนินการ

ตอนนี้ดำเนินการสิ่งนี้ด้วย “ write.js ” ไฟล์โดยป้อน “ โหนด ” คำหลักเบื้องหลัง “ ชื่อไฟล์ ” บนเทอร์มินัล:

โหนดเขียน

เอาต์พุตยืนยันว่าอินพุตที่ต่อเนื่องกันถูกอ่านและค่าเฉลี่ยจะแสดงบนคอนโซลโดยใช้การผสมผสานระหว่างวิธีการเรียกซ้ำและโมดูลบรรทัดอ่าน:

คู่มือนี้จะอธิบายขั้นตอนในการอ่านอินพุตต่อเนื่องกันด้วยโมดูลบรรทัดอ่าน Node.js

บทสรุป

หากต้องการอ่านอินพุตต่อเนื่องกันด้วยโมดูลบรรทัดอ่าน Node.js ให้นำเข้าโมดูลนี้ในไฟล์ที่ใช้งานได้ก่อน และสร้างอินเทอร์เฟซโดยใช้เครื่องหมาย “ สร้างอินเทอร์เฟซ() ' วิธี. อินเทอร์เฟซนี้เรียกใช้ ' คำถาม() ' วิธี. โดยจะส่งคำขอไปยังผู้ใช้อย่างต่อเนื่องและส่งการตอบสนองที่สอดคล้องกันของแต่ละคำขอไปยังฟังก์ชันโทรกลับเพื่อใช้การดำเนินการบางอย่างตามข้อกำหนด คุณได้เรียนรู้กระบวนการอ่านอินพุตต่อเนื่องกันโดยใช้โมดูลบรรทัดอ่าน