Paano Tanggapin ang Input Mula sa Command Line sa Node.js?

Paano Tanggapin Ang Input Mula Sa Command Line Sa Node Js



Ang Node.js ay isang kilalang open-source na libreng JavaScript runtime environment na nagbibigay-daan sa mga user na isagawa ang JavaScript code mula sa isang file o direkta mula sa command line. Ang pagpapatakbo ng JavaScript code mula sa isang file ay nangangailangan ng panlabas na “. js ” file command habang ang command line ay direktang nagpapatupad ng JavaScript code sa bawat linya.

Minsan, kailangang i-configure ng user ang impormasyon habang inilulunsad ang Node.js application mula sa command line sa pamamagitan ng “ node ”. Sa ganoong sitwasyon, kailangang direktang ipasa ng user ang impormasyong iyon bilang input gamit ang execution command sa halip na isulat ito sa “. js ” file.







Tatalakayin ng write-up na ito ang lahat ng posibleng paraan para tanggapin ang input mula sa command line sa Node.js.



Paano Tanggapin ang Input Mula sa Command Line sa Node.js?

Nag-aalok ang Node.js ng mga sumusunod na module upang tanggapin ang input mula sa command line:



Magsimula tayo sa ' Basahin ang linya ” modyul.





Pre-requisites : Bago lumipat sa praktikal na pagpapatupad ng anumang pamamaraan, lumikha muna ng '. js ” file ng anumang pangalan at isulat ang lahat ng source code dito. Dito, lumikha kami ng ' index .js' na file.

Paraan 1: Tanggapin ang Input Mula sa Command Line Gamit ang “readline” Module

Ang ' Basahin ang linya Ang module ay lumilikha ng isang interface para sa pagbabasa ng input ng user mula sa nababasang stream at pagbabalik ng tugon nito bilang resultang output. Ito ay isang built-in na module upang mai-import ito ng user nang direkta sa Node.js application nang hindi ito ini-install gamit ang ' npm ”.



Sa sitwasyong ito, ginagamit ito upang kunin ang input mula sa command line at pagkatapos ay i-print ito sa output screen. Narito ang praktikal na pagpapatupad nito:

const Basahin ang linya = nangangailangan ( 'Basahin ang linya' )
const rl = Basahin ang linya. createInterface ( {
input : proseso. stdin ,
output : proseso. stdout
} )
rl. tanong ( `Pinakamahusay na plataporma para sa teknikal na nilalaman ? ` , website => {
rl. tanong ( `Aling kategorya ang gusto mong tuklasin ? ` , kategorya => {
console. log ( `Website : $ { website } , Kategorya : $ { kategorya } ` )
rl. malapit na ( )
} )
} )

Ang paglalarawan ng mga linya ng code sa itaas ay ang mga sumusunod:

  • Una, ang ' nangangailangan ()' na paraan ay nag-import ng ' Basahin ang linya ” module sa kasalukuyang proyekto ng Node.js.
  • Susunod, ang ' createInterface ()' na pamamaraan ay tumutukoy sa ' input' at 'output ” stream bilang isang bagay. Ang ' input 'Ang stream ay gumagamit ng ' proseso.stdin ” property para sa pagkuha ng input mula sa user.
  • Ang ' output 'Ang stream ay gumagamit ng ' proseso.stdout ” property para sa pagbabasa ng input stream at pag-print nito bilang karaniwang output ng ibinigay na input stream.
  • Pagkatapos nito, ang ' rl.tanong ()' na pamamaraan ay tumatagal ng input mula sa gumagamit. Ipinapasa nito ang tanong bilang una at ang function ng callback bilang pangalawang argumento nito. Kinukuha ng ibinigay na callback arrow function ang mga value na inilagay ng user.
  • Sa kahulugan ng ibinigay na ' website ', at ang ' kategorya ” callback arrow function, ang “ console.log ()” na paraan ay ginagamit upang ipakita ang mga inilagay na halaga.
  • Panghuli, ang ' rl.malapit ()' na pamamaraan ay nagsasara sa ginawang interface sa itaas.

Output

Simulan ang ' index .js” na file sa pamamagitan ng pagsasagawa ng ibinigay na command:

index ng node. js

Ang sumusunod na output ay nagpapakita ng isang readline na interface na kumukuha ng input ng user mula sa command line at pagkatapos ay ipinapakita ang inilagay na halaga bilang karaniwang output:

Paraan 2: Tanggapin ang Input Mula sa Command Line Gamit ang 'readline-sync' Module

Ang ' readline-sync ” ay ang third-party na module na sabay-sabay na kumukuha ng impormasyong nauugnay sa mga naka-hardcode na tanong at nag-iimbak ng kanilang mga kaukulang sagot para sa mga operasyon sa hinaharap. Ito ay gumaganap bilang isang komunikasyon sa pagitan ng kliyente at server mula sa command line.

Ang pangunahing pagkakaiba sa pagitan ng asynchronous at synchronous na mga module ay ang ' asynchronous ” hinaharangan ang pagpapatupad ng source code hanggang sa ang tinukoy na gawain nito ay hindi maisagawa samantalang ang kasabay na mga module ay nagpapatupad ng code sa bawat linya sa sunud-sunod na paraan.

I-install ang 'readline-sync' na Module

Ang “readline-sync” Ang module ay hindi isang built-in na module, kaya kailangan itong mai-install nang manu-mano sa pamamagitan ng pagpapatupad ng command sa ibaba:

npm i-install ang readline - i-sync

Ipinapakita ng output na ang readline-sync module ay naidagdag sa kasalukuyang proyekto ng Node.js:

Ngayon, gamitin ang ' readline-sync ” module sa pamamagitan ng pagsunod sa ibinigay na code snippet:

ay readlineSync = nangangailangan ( 'readline-sync' ) ;
ay empName = readlineSync. tanong ( 'Pangalan ng Empleyado:' ) ;
ay jd = readlineSync. tanong ( 'Deskripsyon ng trabaho: ' ) ;
ay kumpanya = readlineSync. tanong ( 'Kumpanya:' , {
} ) ;
console. log ( empName + ' gumagana bilang isang ' + jd + ' sa ' + kumpanya ) ;

Ang paliwanag ng code sa itaas ay ang mga sumusunod:

  • Una, ang ' readline-sync 'Ang module ay na-import sa loob ng file at ang object nito ay naka-imbak sa isang bagong variable ' readlineSync ”.
  • Susunod, tatanungin ang query sa tulong ng ' tanong ()” na pamamaraan sa pamamagitan ng pagtukoy nito bilang argumento.
  • Ang parehong pamamaraan ay ginagamit para sa pagtatanong ng mga susunod na katanungan.
  • Pagkatapos nito, ang ' console.log ()' na paraan ay ginagamit upang ipakita ang mga inilagay na halaga kasama ang naka-quote na string.

Output

Isagawa ang ' index .js” na file:

index ng node. js

Ipinapakita ng output na sa magkasabay na paraan, ang input mula sa mga user ay kinuha at ipinakita gamit ang ' readline-sync ” module:

Paraan 3: Tanggapin ang Input Mula sa Command Line Gamit ang “prompt” Module

Ang ' prompt ” ay isang asynchronous na module na lumilikha ng isang pagpapaandar na nag-iimbak ng input ng user bilang halaga ng variable at pagkatapos ay kunin ito bilang resultang output. Hindi nito kailangang i-configure nang tahasan ang nababasa at naisusulat na stream kaya naman medyo madali itong gamitin kumpara sa ' Basahin ang linya ” modyul.

I-install ang 'prompt' na Module

Ang ' prompt Ang ” ay isa ring third-party na module na madaling mai-install sa tulong ng “ npm ' sa ganitong paraan:

prompt ng pag-install ng npm -- iligtas

Sa utos sa itaas, ang ' – iligtas ' idinagdag ng watawat ang ' prompt ” module sa “ package.json ” file.

Masusuri na ang “ prompt ” ay naidagdag sa kasalukuyang proyekto ng Node.js:

Ngayon, gamitin ang naka-install na ' prompt ” module halos sa tulong ng sumusunod na snippet ng code:

const prompt = nangangailangan ( 'prompt' )
prompt. simulan ( )
prompt. makuha ( [ 'authorName' , 'Kategorya' ] , ( magkamali , resulta ) => {
kung ( magkamali ) {
itapon magkamali

} iba pa {
console. log ( `$ { resulta. Pangalan ng may-akda } gumagana sa $ { resulta. Kategorya } ` )

}
} )

Sa nabanggit na code block:

  • Ang ' nangangailangan ()' na paraan ay nag-import ng ' prompt ” module sa proyekto.
  • Ang ' simulan ()' na pamamaraan ay nagsisimula sa prompt.
  • Ang ' makuha ()' na pamamaraan ay tumatagal ng input mula sa user sa pamamagitan ng command line. Tinutukoy nito ang mga pangalan ng property at ang callback arrow function bilang una at pangalawang parameter.
  • Ang callback function na may ' magkamali 'at' resulta Tinutukoy ng mga parameter ang isang ' kung hindi ” pahayag.
  • Kung ang anumang uri ng error ay nangyari pagkatapos ay ang ' kung ' itatapon ng block ang error na iyon kung hindi man ang ' iba pa ” block ay magpapakita ng mga halaga ng mga tinukoy na katangian bilang isang output.

Output

Patakbuhin ang ' index .js” na file:

index ng node. js

Kinukuha ng sumusunod na output ang input ng user batay sa mga tinukoy na katangian at pagkatapos ay kinukuha ang kanilang mga halaga bilang isang output:

Paraan 4: Tanggapin ang Input Mula sa Command Line Gamit ang “inquirer” Module

Sa Node.js, ang “ nagtatanong ” ay isang madaling paraan upang kunin ang input mula sa command line. Ito ay may kasamang ilang kapaki-pakinabang na pamamaraan para kumuha ng input mula sa mga user at pagkatapos ay ibalik ang output gamit ang ' sagot ” bagay at ang “. pagkatapos ()” built-in na pamamaraan.

Ito ay kapaki-pakinabang para sa pagtatanong ng iba't ibang uri ng mga tanong mula sa user sa pamamagitan ng command line tulad ng listahan, mga opsyon, input, mga checkbox, at marami pang iba. Nagbibigay ito ng maginhawang paraan upang gawing interactive ang interface ng command line para sa mga gawaing nakabatay sa query.

Sundin ang detalyadong gabay sa ' Kumuha ng Input Mula sa Command Line Gamit ang Node.js Inquirer ” para sa praktikal na pagpapakita.

Tip: Paano Ipasa ang Mga Argumento Mula sa Command Line sa Node?

Ang user ay maaari ding magpasa ng mga argumento mula sa command line. Para sa layuning ito, ang ' proseso.argv ” maaaring gamitin ang ari-arian. Ang ' argv Ang ” ay ang built-in na property ng “process” module na ginagamit upang ipasa ang mga argumento mula sa command line habang pinapatakbo ang Node.js application gamit ang “ node ” utos.

Sundin ang detalyadong gabay sa “ Ipasa ang Mga Argumento Mula sa Command Line sa Node.js ” para sa praktikal na pagpapakita.

Iyon lang ang tungkol sa pagtanggap ng input mula sa command line sa Node.js.

Konklusyon

Upang tanggapin ang input mula sa command line, gamitin ang asynchronous na “ Basahin ang linya ”, o ang kasabay na “ readline-sync ” modyul. Bukod dito, maaari rin itong isagawa sa pamamagitan ng ' prompt ' o ang ' nagtatanong ” modyul. Maliban sa ' redline-sync ” module, ang lahat ng natitirang mga module ay asynchronous. Tinalakay ng write-up na ito ang lahat ng posibleng paraan para tanggapin ang input mula sa command line sa Node.js.