Bagaimana untuk Membaca Input Berturut-turut dengan Modul Baris Baca Node.js?

Bagaimana Untuk Membaca Input Berturut Turut Dengan Modul Baris Baca Node Js



' talian baca ” Modul Node.js sesuai untuk digunakan dalam senario di mana lebih daripada satu input berturut-turut perlu diambil daripada pengguna akhir. Modul ini membungkus output dan input standard yang membantu dalam membaca aliran input baris demi baris tanpa melangkau sebarang data yang diterima. Dengan kedatangan ' talian baca ” modul, prosedur untuk mendapatkan semula data dalam masa nyata menjadi lebih mudah dan cepat.

Tulisan ini menerangkan prosedur untuk membaca input berturut-turut dengan modul baris baca nodejs.

Bagaimana untuk Membaca Input Berturut-turut dengan Modul Baris Baca Node.js?

Input berturut-turut ialah input yang mengambil dan menyimpan jawapan untuk berbilang soalan pada masa yang sama secara berurutan. Pertanyaan berturut-turut ini kebanyakannya ditanya semasa menyertai beberapa kursus atau pada masa pengesahan. Beberapa contoh dinyatakan di bawah untuk pelaksanaan membaca input berturut-turut menggunakan modul baris baca Node.js.







Contoh 1: Membaca Input Berturut-turut Menggunakan Modul dan Tatasusunan Garis Baca

Dalam contoh ini, input berturut-turut diambil dan dibaca menggunakan ' talian baca ” modul. Input disimpan dalam tatasusunan dari mana ia dipaparkan pada konsol:



const talian baca = memerlukan ( 'readline' ) ;

const readlineInterface = talian baca. createInterface ( {

input : proses. stdin ,

pengeluaran : proses. stdout

} )

const req0 = 'Mungkin! Saya tahu nama panggilan awak?' ;

const req1 = 'Apakah hobi anda' ;

const req2 = 'Apa yang anda suka dengar' ;

const req3 = 'Mungkin! Saya tahu hidangan kegemaran awak?' ;

const req4 = 'Di mana awak tinggal?' ;

const req5 = 'Apakah warna kegemaran kamu' ;

const req6 = 'Siapakah kawan baik kamu' ;

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

mari res = '' ;

const reqData = x => {

jika ( x < reqArr. panjang ) {

readlineInterface. soalan ( reqArr [ x ] , ( reqResponse ) => {

semula += ' \n ' + reqResponse ;

reqData ( x + 1 ) ;

} ) ;

} lain {

konsol. log ( `Terima kasih untuk berkongsi dengan saya ! $ { semula } ` ) ;

readlineInterface. dekat ( ) ;

}

} ;

reqData ( 0 ) ;

Perihalan kod yang digunakan dalam coretan kod di atas dinyatakan di bawah:



  • Mulakan dengan mengimport ' talian baca ' modul dan simpan objeknya dalam pembolehubah bernama ' talian baca ”.
  • Seterusnya, buat antara muka bernama ' readlineInterface 'untuk' talian baca ' objek yang membungkus proses input dan output standard menggunakan ' createInterface() ” kaedah. Ia juga mengaitkan setiap permintaan dan respons dengan satu input tunggal yang boleh dibaca dan strim boleh ditulis output menggunakan ' proses ” harta benda.
  • Kemudian, buat tujuh ' const ” taip pembolehubah untuk menyimpan beberapa permintaan atau soalan yang perlu ditanya secara berturut-turut. Simpan pemalar ini dalam tatasusunan tunggal bernama ' reqArr ”.
  • Buat pembolehubah kosong baharu “ semula ”, tentukan fungsi anak panah bernama “ reqData ' dan lulus parameter tunggal ' x ”.
  • Di dalam fungsi ini, gunakan ' jika pernyataan ' yang menyemak sama ada nilai parameter yang disediakan adalah kurang daripada panjang ' reqArr ' atau tidak.
  • Dalam kes benar, ' soalan() ” kaedah digunakan pada antara muka dan ia memaparkan setiap permintaan daripada tatasusunan ke atas output secara berurutan. Kemudian ia melepasi nilai yang disediakan sepadan sebagai hujah.
  • Argumen ini disimpan dalam tatasusunan yang telah dibuat ' semula ”.
  • Setelah semua permintaan dipaparkan secara berurutan di atas konsol maka keadaan ' jika pernyataan ' menjadi palsu dan dalam ' lain 'bahagian,' semula ” tatasusunan akan dipaparkan di atas konsol.
  • Akhirnya, antara muka baris baca juga ditutup dengan menggunakan ' tutup() ” kaedah. Juga, mohon ' reqData() fungsi ” dan lulus nilai awal “ 0 ” untuk memulakan soalan dari atas atau daripada soalan pertama yang tersedia dalam tatasusunan.

Sekarang, laksanakan fail yang mengandungi ini dengan memasukkan ' nod ” kata kunci di sebalik “ nama fail ” di terminal:





menulis nod

Output menunjukkan bahawa program telah membaca input berturut-turut dan mengembalikan kesemuanya sekaligus:

Contoh 2: Membaca Input Berturut-turut Menggunakan Modul Readline dan Fungsi Rekursif

Dalam kaedah, pendekatan rekursif digunakan dengan ' talian baca ” Modul Node.js untuk membaca input berturut-turut daripada pengguna pada aliran input:



const membaca = memerlukan ( 'readline' ) ;
const readlineInterface = membaca. createInterface ( {
input : proses. stdin ,
pengeluaran : proses. stdout
} )
was reqArr = [ ]
fungsi reqData ( x ) {
jika ( x > 3 )
{
purata var = 0
untuk ( j dalam reqArr )
{
purata += Nombor ( reqArr [ j ] )
}
konsol. log ( purata / 3 ) ;
}
lain
{
readlineInterface. soalan ( 'Masuk ke ' + x + 'nombor daripada 3:' ,    fungsi ( reqResponse ) {
reqArr. menolak ( reqResponse )
reqData ( x + 1 )
} )
}
}

reqData ( 1 ) ;

Penjelasan untuk kod di atas diterangkan di bawah dalam bentuk titik peluru:

  • Pertama, import ' talian baca ' dalam yang baru dibuat ' tulis.js ” fail dan simpan objek kaedah dalam “ membaca ” pembolehubah. Buat antara muka yang menyimpan ' talian baca ' antara muka yang dibuat melalui ' createInterface() ” kaedah.
  • Sekarang, buat tatasusunan kosong bernama “ reqArr ” dan takrifkan “ reqData() fungsi ” yang juga menerima satu parameter bernama “ x ”.
  • Fungsi terlebih dahulu menyemak sama ada nilai yang diberikan lebih besar daripada ' 3 ' atau tidak. Dalam kes benar, nilai yang diperoleh semula yang datang dalam ' x ' pembolehubah disimpan dalam tatasusunan dan ditambah pada pembolehubah tunggal bernama ' purata ”.
  • Selepas itu, ' purata ' pembolehubah dibahagikan dengan ' 3 ' untuk mencari purata kerana panjang nombor maksimum yang dibenarkan ialah ' 3 ” dan hasilnya dipaparkan pada konsol.
  • Di bahagian lain, ' soalan() ' kaedah dilampirkan dengan antara muka ' readlineInerface ”. Kaedah ini memaparkan mesej di atas konsol dan mentakrifkan fungsi tanpa nama.
  • Fungsi ini menerima data input pengguna dan menambah data itu pada tatasusunan “ reqArr ”. Ia juga mengemas kini nilai ' x ” setiap kali dan hantar nilai yang dikemas kini kepada “ reqData() ” fungsi. Ini akan memastikan bahawa pengguna hanya memasukkan nilai kurang daripada tiga bermula daripada “ 0 ”. Akhir sekali, mohon ' reqData() ” fungsi untuk memulakan proses pelaksanaan.

Sekarang, laksanakan ini yang mengandungi ' tulis.js ” fail dengan memasukkan “ nod ” kata kunci di sebalik “ nama fail ” di terminal:

menulis nod

Output mengesahkan bahawa input berturut-turut dibaca dan puratanya dipaparkan pada konsol menggunakan gabungan pendekatan rekursif dan modul garis baca:

Panduan ini menerangkan prosedur untuk membaca input berturut-turut dengan modul baris baca Node.js.

Kesimpulan

Untuk membaca input berturut-turut dengan modul baris baca Node.js, mula-mula import modul ini dalam fail yang berfungsi dan buat antara muka menggunakan ' createInterface() ” kaedah. Antara muka ini memanggil ' soalan() ” kaedah. Ia menghantar permintaan kepada pengguna secara berturut-turut dan menghantar respons yang sepadan bagi setiap permintaan kepada fungsi panggil balik untuk menggunakan beberapa operasi mengikut keperluan. Anda telah mempelajari proses membaca input berturut-turut menggunakan modul baris baca.