Come accettare l'input dalla riga di comando in Node.js?

Come Accettare L Input Dalla Riga Di Comando In Node Js



Node.js è un noto ambiente runtime JavaScript gratuito open source che consente agli utenti di eseguire il codice JavaScript da un file o direttamente dalla riga di comando. L'esecuzione di un codice JavaScript da un file richiede un file '. js 'file mentre la riga di comando esegue il codice JavaScript direttamente riga per riga.

A volte, l'utente deve configurare le informazioni mentre avvia l'applicazione Node.js dalla riga di comando tramite il pulsante ' nodo ”. In una situazione del genere, l'utente deve passare tali informazioni direttamente come input con il comando di esecuzione invece di scriverle nel file '. js ' file.







Questo articolo discuterà tutti i metodi possibili per accettare input dalla riga di comando in Node.js.



Come accettare l'input dalla riga di comando in Node.js?

Node.js offre i seguenti moduli per accettare input dalla riga di comando:



Cominciamo con il “ linea di lettura ' modulo.





Prerequisiti : Prima di passare all'implementazione pratica di qualsiasi metodo, creare innanzitutto un file “. js ' con qualsiasi nome e scrivervi tutto il codice sorgente. Qui, abbiamo creato un ' indice .js'.

Metodo 1: accettare l'input dalla riga di comando utilizzando il modulo 'readline'.

IL ' linea di lettura ” crea un'interfaccia per leggere l'input dell'utente dal flusso leggibile e restituire la sua risposta come output risultante. È un modulo integrato in modo che l'utente possa importarlo direttamente nell'applicazione Node.js senza installarlo utilizzando ' npm ”.



In questo scenario, viene utilizzato per prendere l'input dalla riga di comando e quindi stamparlo sulla schermata di output. Ecco la sua implementazione pratica:

cost linea di lettura = richiedere ( 'linea di lettura' )
cost rl = linea di lettura. createInterface ( {
ingresso : processi. stdin ,
produzione : processi. stdout
} )
rl. domanda ( 'La migliore piattaforma per contenuto tecnico ? ` , sito web => {
rl. domanda ( 'Quale categoria vorresti esplorare?' ? ` , categoria => {
consolle. tronco d'albero ( 'Sito web'. : $ { sito web } , Categoria : $ { categoria } ` )
rl. vicino ( )
} )
} )

La descrizione delle righe di codice sopra è la seguente:

  • In primo luogo, il “ richiedere ()” importa il metodo “ linea di lettura ' nel progetto Node.js corrente.
  • Successivamente, il “ createInterface ()” specifica il metodo “ ingresso e uscita ' scorre come un oggetto. IL ' ingresso ' lo streaming utilizza il ' processo.stdin 'proprietà per ricevere input dall'utente.
  • IL ' produzione ' lo streaming utilizza il ' process.stdout ' per leggere il flusso di input e stamparlo come output standard del flusso di input specificato.
  • Dopodiché, il “ rl.domanda ()' riceve l'input dall'utente. Passa la domanda come primo argomento e la funzione di callback come secondo argomento. La funzione freccia di richiamata specificata recupera i valori immessi dall'utente.
  • Nella definizione del dato “ sito web ', e il ' categoria ', la funzione freccia di richiamata, la funzione ' console.log ()” viene utilizzato per visualizzare i valori immessi.
  • Infine, il “ rl.chiudi ()” chiude l'interfaccia creata sopra.

Produzione

Avviare il “ indice .js” eseguendo il comando fornito:

indice del nodo. js

Il seguente output mostra un'interfaccia readline che riceve l'input dell'utente dalla riga di comando e quindi visualizza il valore immesso come output standard:

Metodo 2: accettare l'input dalla riga di comando utilizzando il modulo 'readline-sync'.

IL ' readline-sync ' è il modulo di terze parti che recupera in modo sincrono le informazioni relative alle domande codificate e memorizza le risposte corrispondenti per operazioni future. Funziona come una comunicazione tra il client e il server dalla riga di comando.

La differenza principale tra i moduli asincroni e sincroni è che il “ asincrono ” blocca l'esecuzione del codice sorgente finché l'attività specificata non viene eseguita mentre i moduli sincroni eseguono il codice riga per riga in modo sequenziale.

Installa il modulo “readline-sync”.

IL “readline-sync” module non è un modulo integrato, quindi deve essere installato manualmente eseguendo il comando seguente:

npm installa readline - sincronizzare

L'output mostra che il modulo readline-sync è stato aggiunto al progetto Node.js corrente:

Ora usa il ' readline-sync ' modulo praticamente seguendo il frammento di codice indicato:

era readlineSync = richiedere ( 'readline-sync' ) ;
era empName = readlineSync. domanda ( 'Nome dipendente: ' ) ;
era jd = readlineSync. domanda ( 'Descrizione del lavoro: ' ) ;
era azienda = readlineSync. domanda ( 'Azienda: ' , {
} ) ;
consolle. tronco d'albero ( empName + ' funziona come ' + jd + ' In ' + azienda ) ;

La spiegazione del codice sopra è la seguente:

  • Prima il ' readline-sync 'il modulo viene importato all'interno del file e il suo oggetto viene memorizzato in una nuova variabile' readlineSync ”.
  • Successivamente, la query viene posta con l'aiuto del comando ' domanda ()” specificandolo come argomento.
  • La stessa procedura viene utilizzata per porre le domande successive.
  • Dopodiché, il “ console.log ()' viene utilizzato per visualizzare i valori immessi insieme alla stringa tra virgolette.

Produzione

Esegui il ' indice .js”:

indice del nodo. js

L'output mostra che in modo sincrono, l'input degli utenti è stato preso e visualizzato utilizzando il pulsante ' readline-sync ' modulo:

Metodo 3: accettare l'input dalla riga di comando utilizzando il modulo 'prompt'.

IL ' richiesta ' è un modulo asincrono che crea una funzione di richiesta per memorizzare l'input dell'utente come valore della variabile e quindi recuperarlo come output risultante. Non è necessario configurare esplicitamente il flusso leggibile e scrivibile, ecco perché è abbastanza facile da usare rispetto al ' linea di lettura ' modulo.

Installa il modulo “prompt”.

IL ' richiesta ' è anche un modulo di terze parti che può essere facilmente installato con l'aiuto di ' npm ' in questo modo:

richiesta di installazione di npm -- salva

Nel comando sopra, il ' -salva La bandiera ' aggiunge il ' richiesta ' al modulo ' pacchetto.json ' file.

Si può analizzare che “ richiesta ' è stato aggiunto all'attuale progetto Node.js:

Ora utilizza il ' richiesta ' praticamente con l'aiuto del seguente frammento di codice:

cost richiesta = richiedere ( 'richiesta' )
richiesta. inizio ( )
richiesta. Ottenere ( [ 'nome dell'autore' , 'Categoria' ] , ( errare , risultato ) => {
Se ( errare ) {
gettare errare

} altro {
consolle. tronco d'albero ( `$ { risultato. nome dell'autore } funziona su $ { risultato. Categoria } ` )

}
} )

Nel blocco di codice sopra indicato:

  • IL ' richiedere ()” importa il metodo “ richiesta ' nel progetto.
  • IL ' inizio ()” avvia il prompt.
  • IL ' Ottenere ()' riceve l'input dall'utente tramite la riga di comando. Specifica i nomi delle proprietà e la funzione della freccia di callback come primo e secondo parametro.
  • La funzione di richiamata con ' errare ' E ' risultato ' parametri definisce un ' se altro ' dichiarazione.
  • Se si verifica qualsiasi tipo di errore, il messaggio ' Se ' il blocco genererà quell'errore altrimenti il ​​' altro Il blocco ' visualizzerà i valori delle proprietà specificate come output.

Produzione

Corri il ' indice .js”:

indice del nodo. js

Il seguente output accetta l'input dell'utente in base alle proprietà specificate e quindi recupera i relativi valori come output:

Metodo 4: accettare l'input dalla riga di comando utilizzando il modulo 'inquirer'.

In Node.js, il ' investigatore ' è un modo semplice per ricevere l'input dalla riga di comando. Viene fornito con diversi metodi utili per ricevere input dagli utenti e quindi restituire l'output utilizzando il comando ' risposta ' oggetto e il '. Poi ()” metodo integrato.

È utile per porre diversi tipi di domande all'utente tramite la riga di comando come elenco, opzioni, input, caselle di controllo e molto altro. Fornisce un modo conveniente per rendere interattiva l'interfaccia dell'interfaccia della riga di comando per attività basate su query.

Segui la guida dettagliata su “ Prendi input dalla riga di comando utilizzando Node.js Inquirer ” per dimostrazione pratica.

Suggerimento: come passare gli argomenti dalla riga di comando in Node?

L'utente può anche passare argomenti dalla riga di comando. A questo scopo, il “ processo.argv 'la proprietà può essere utilizzata. IL ' argv ' è la proprietà integrata del modulo 'process' che viene utilizzata per passare gli argomenti dalla riga di comando durante l'esecuzione dell'applicazione Node.js utilizzando il ' nodo 'comando.

Segui la guida dettagliata su “ Passa argomenti dalla riga di comando in Node.js ” per dimostrazione pratica.

Si tratta di accettare input dalla riga di comando in Node.js.

Conclusione

Per accettare l'input dalla riga di comando, utilizzare il comando asincrono “ linea di lettura ”, o il sincrono “ readline-sync ' modulo. Inoltre, può essere effettuato anche attraverso il “ richiesta ' o il ' investigatore ' modulo. Fatta eccezione per “ sincronizzazione della linea rossa ', tutti i moduli rimanenti sono asincroni. Questo articolo ha discusso tutti i metodi possibili per accettare input dalla riga di comando in Node.js.