Bagaimana untuk Menerima Input Daripada Baris Perintah dalam Node.js?

Bagaimana Untuk Menerima Input Daripada Baris Perintah Dalam Node Js



Node.js ialah persekitaran masa jalan JavaScript percuma sumber terbuka yang terkenal yang membolehkan pengguna melaksanakan kod JavaScript daripada fail atau terus daripada baris arahan. Menjalankan kod JavaScript daripada fail memerlukan '. js ” arahan fail manakala baris arahan melaksanakan kod JavaScript terus baris demi baris.

Kadangkala, pengguna perlu mengkonfigurasi maklumat semasa melancarkan aplikasi Node.js daripada baris arahan melalui “ nod ”. Dalam keadaan sedemikian, pengguna perlu menghantar maklumat tersebut secara langsung sebagai input dengan arahan pelaksanaan dan bukannya menulisnya ke dalam '. js ” fail.







Tulisan ini akan membincangkan semua kaedah yang mungkin untuk menerima input daripada baris arahan dalam Node.js.



Bagaimana untuk Menerima Input Daripada Baris Perintah dalam Node.js?

Node.js menawarkan modul berikut untuk menerima input daripada baris arahan:



Mari kita mulakan dengan ' talian baca ” modul.





Pra-syarat : Sebelum beralih kepada pelaksanaan praktikal mana-mana kaedah, mula-mula buat '. js ” fail mana-mana nama dan tulis semua kod sumber kepadanya. Di sini, kami telah mencipta ' indeks .js” fail.

Kaedah 1: Terima Input Daripada Baris Perintah Menggunakan Modul “readline”.

' talian baca ” modul mencipta antara muka untuk membaca input pengguna daripada strim boleh dibaca dan mengembalikan responsnya sebagai output yang terhasil. Ia adalah modul terbina dalam supaya pengguna boleh mengimportnya terus ke dalam aplikasi Node.js tanpa memasangnya menggunakan “ npm ”.



Dalam senario ini, ia digunakan untuk mengambil input daripada baris arahan dan kemudian mencetaknya pada skrin output. Berikut adalah pelaksanaan praktikalnya:

const talian baca = memerlukan ( 'readline' )
const rl = talian baca. createInterface ( {
input : proses. stdin ,
pengeluaran : proses. stdout
} )
rl. soalan ( `Platform terbaik untuk kandungan teknikal ? ` , laman web => {
rl. soalan ( `Kategori yang anda ingin terokai ? ` , kategori => {
konsol. log ( `Laman web : $ { laman web } , kategori : $ { kategori } ` )
rl. dekat ( )
} )
} )

Penerangan baris kod di atas adalah seperti berikut:

  • Pertama, ' memerlukan ()' kaedah mengimport ' talian baca ” modul dalam projek Node.js semasa.
  • Seterusnya, ' createInterface ()' kaedah menentukan ' input' dan 'output ” aliran sebagai objek. ' input 'strim menggunakan ' proses.stdin ” harta untuk mengambil input daripada pengguna.
  • ' pengeluaran ” strim menggunakan “ proses.stdout ” harta untuk membaca aliran input dan mencetaknya sebagai output standard aliran input yang diberikan.
  • Selepas itu, ' rl.soalan ()” kaedah mengambil input daripada pengguna. Ia melepasi soalan sebagai pertama dan fungsi panggil balik sebagai hujah kedua. Fungsi anak panah panggil balik yang diberikan mendapatkan semula nilai yang dimasukkan pengguna.
  • Dalam definisi yang diberikan ' laman web ', dan juga ' kategori ” fungsi anak panah panggil balik, “ konsol.log ()” kaedah digunakan untuk memaparkan nilai yang dimasukkan.
  • Akhir sekali, ' rl.tutup ()” menutup antara muka yang dibuat di atas.

Pengeluaran

Mulakan ' indeks .js” dengan melaksanakan arahan yang disediakan:

indeks nod. js

Output berikut menunjukkan antara muka baris baca yang mengambil input pengguna daripada baris arahan dan kemudian memaparkan nilai yang dimasukkan sebagai output standard:

Kaedah 2: Terima Input Daripada Baris Perintah Menggunakan Modul 'readline-sync'.

' readline-sync ” ialah modul pihak ketiga yang mengambil semula maklumat yang berkaitan dengan soalan berkod keras secara serentak dan menyimpan jawapan yang sepadan untuk operasi masa hadapan. Ia bertindak sebagai komunikasi antara klien dan pelayan dari baris arahan.

Perbezaan utama antara modul tak segerak dan segerak ialah ' tak segerak ” menyekat pelaksanaan kod sumber sehingga tugas yang ditentukan tidak dilakukan manakala modul segerak melaksanakan kod baris demi baris secara berurutan.

Pasang Modul 'readline-sync'.

The 'penyegerakan baris baca' modul bukan modul terbina dalam, jadi ia perlu dipasang secara manual dengan melaksanakan arahan di bawah:

npm pasang readline - penyegerakan

Output menunjukkan bahawa modul penyegerakan readline telah ditambahkan pada projek Node.js semasa:

Sekarang, gunakan ' readline-sync ” secara praktikal dengan mengikuti coretan kod yang diberikan:

adalah readlineSync = memerlukan ( 'readline-sync' ) ;
adalah empName = readlineSync. soalan ( 'Nama Pekerja: ' ) ;
adalah jd = readlineSync. soalan ( 'Deskripsi kerja: ' ) ;
adalah syarikat = readlineSync. soalan ( 'Syarikat:' , {
} ) ;
konsol. log ( empName + 'berfungsi sebagai' + jd + 'dalam' + syarikat ) ;

Penjelasan kod di atas adalah seperti berikut:

  • Pertama, ' readline-sync 'modul diimport di dalam fail dan objeknya disimpan dalam pembolehubah baharu' readlineSync ”.
  • Seterusnya, pertanyaan ditanya dengan bantuan ' soalan ()” kaedah dengan menyatakannya sebagai hujah.
  • Prosedur yang sama digunakan untuk bertanya soalan seterusnya.
  • Selepas itu, ' konsol.log ()” kaedah digunakan untuk memaparkan nilai yang dimasukkan bersama dengan rentetan yang disebut.

Pengeluaran

Laksanakan ' indeks .js” fail:

indeks nod. js

Output menunjukkan bahawa secara serentak, input daripada pengguna telah diambil dan dipaparkan menggunakan ' readline-sync ” modul:

Kaedah 3: Terima Input Daripada Baris Perintah Menggunakan Modul 'prompt'.

' segera ” ialah modul tak segerak yang mencipta fungsi menggesa untuk menyimpan input pengguna sebagai nilai pembolehubah dan kemudian mendapatkannya sebagai output terhasil. Ia tidak perlu mengkonfigurasi strim yang boleh dibaca dan boleh ditulis secara eksplisit sebab itu ia agak mudah digunakan berbanding dengan ' talian baca ” modul.

Pasang Modul 'prompt'.

' segera ” juga merupakan modul pihak ketiga yang boleh dipasang dengan mudah dengan bantuan “ npm ” dengan cara ini:

npm pasang segera -- jimat

Dalam arahan di atas, ' –jimat 'bendera menambah' segera ' modul kepada ' package.json ” fail.

Ia boleh dianalisis bahawa ' segera ” telah ditambahkan pada projek Node.js semasa:

Sekarang, gunakan ' yang dipasang segera ” secara praktikal dengan bantuan coretan kod berikut:

const segera = memerlukan ( 'prompt' )
segera. mulakan ( )
segera. dapatkan ( [ 'nama pengarang' , 'Kategori' ] , ( silap , hasil ) => {
jika ( silap ) {
melontar silap

} lain {
konsol. log ( `$ { hasil. Nama pengarang } berfungsi pada $ { hasil. kategori } ` )

}
} )

Dalam blok kod yang dinyatakan di atas:

  • ' memerlukan ()' kaedah mengimport ' segera ” modul ke dalam projek.
  • ' mulakan ()” kaedah memulakan gesaan.
  • ' dapatkan ()” kaedah mengambil input daripada pengguna melalui baris arahan. Ia menentukan nama harta dan fungsi anak panah panggil balik sebagai parameter pertama dan kedua.
  • Fungsi panggil balik dengan “ silap ” dan “ hasil parameter ' mentakrifkan ' jika tidak ” kenyataan.
  • Jika sebarang jenis ralat berlaku maka ' jika blok ' akan membuang ralat itu jika tidak ' lain ” blok akan memaparkan nilai sifat yang ditentukan sebagai output.

Pengeluaran

Jalankan ' indeks .js” fail:

indeks nod. js

Output berikut mengambil input pengguna berdasarkan sifat yang ditentukan dan kemudian mendapatkan semula nilainya sebagai output:

Kaedah 4: Terima Input Daripada Baris Perintah Menggunakan Modul “inquirer”.

Dalam Node.js, ' penyiasat ” ialah cara mudah untuk mengambil input daripada baris arahan. Ia datang dengan beberapa kaedah berguna untuk mengambil input daripada pengguna dan kemudian mengembalikan output menggunakan ' jawab ” objek dan “. kemudian ()” kaedah terbina dalam.

Ia berguna untuk bertanya pelbagai jenis soalan daripada pengguna melalui baris arahan seperti senarai, pilihan, input, kotak semak dan banyak lagi. Ia menyediakan cara yang mudah untuk menjadikan antara muka baris arahan interaktif untuk tugasan berasaskan pertanyaan.

Ikuti panduan terperinci mengenai ' Ambil Input Daripada Baris Perintah Menggunakan Node.js Inquirer ” untuk demonstrasi praktikal.

Petua: Bagaimana untuk Meluluskan Argumen Dari Baris Perintah dalam Node?

Pengguna juga boleh menyampaikan hujah dari baris arahan. Untuk tujuan ini, ' proses.argv ” harta boleh digunakan. ' argv ” ialah sifat terbina dalam modul “proses” yang digunakan untuk menghantar hujah daripada baris arahan semasa menjalankan aplikasi Node.js menggunakan “ nod ” perintah.

Ikuti panduan terperinci mengenai ' Lulus Argumen Daripada Baris Perintah dalam Node.js ” untuk demonstrasi praktikal.

Itu sahaja tentang menerima input daripada baris arahan dalam Node.js.

Kesimpulan

Untuk menerima input daripada baris arahan, gunakan asynchronous “ talian baca ”, atau segerak “ readline-sync ” modul. Selain itu, ia juga boleh dilakukan melalui “ segera ' atau ' penyiasat ” modul. Kecuali untuk ' penyegerakan garis merah ” modul, semua modul yang tinggal adalah tak segerak. Tulisan ini telah membincangkan semua kaedah yang mungkin untuk menerima input daripada baris arahan dalam Node.js.