Como aceitar entrada da linha de comando em Node.js?

Como Aceitar Entrada Da Linha De Comando Em Node Js



Node.js é um conhecido ambiente de tempo de execução JavaScript gratuito de código aberto que permite aos usuários executar o código JavaScript a partir de um arquivo ou diretamente da linha de comando. A execução de um código JavaScript a partir de um arquivo requer um arquivo “. js ”Comando de arquivo enquanto a linha de comando executa o código JavaScript diretamente linha por linha.

Às vezes, o usuário precisa configurar as informações ao iniciar o aplicativo Node.js a partir da linha de comando por meio do “ ”. Em tal situação, o usuário precisa passar essas informações diretamente como entrada com o comando de execução, em vez de escrevê-las no arquivo “. js ' arquivo.







Este artigo discutirá todos os métodos possíveis para aceitar entradas da linha de comando no Node.js.



Como aceitar entrada da linha de comando em Node.js?

O Node.js oferece os seguintes módulos para aceitar entradas da linha de comando:



Vamos começar com o “ Leia a linha ”módulo.





Pré-requisitos : Antes de passar para a implementação prática de qualquer método, primeiro crie um arquivo “. js ”Arquivo de qualquer nome e escreva todo o código-fonte nele. Aqui, criamos um “ índice .js” arquivo.

Método 1: aceitar a entrada da linha de comando usando o módulo “readline”

O ' Leia a linha ”O módulo cria uma interface para ler a entrada do usuário do fluxo legível e retornar sua resposta como a saída resultante. É um módulo integrado para que o usuário possa importá-lo diretamente para o aplicativo Node.js sem instalá-lo usando “ npm ”.



Neste cenário, é usado para obter a entrada da linha de comando e imprimi-la na tela de saída. Aqui está sua implementação prática:

const Leia a linha = exigir ( 'Leia a linha' )
const rl = Leia a linha. criarInterface ( {
entrada : processo. stdin ,
saída : processo. saída padrão
} )
rl. pergunta ( `Melhor plataforma para conteúdo técnico ? ` , local na rede Internet => {
rl. pergunta ( `Qual categoria você gostaria de explorar ? ` , categoria => {
console. registro ( `Site : $ { local na rede Internet } , Categoria : $ { categoria } ` )
rl. fechar ( )
} )
} )

A descrição das linhas de código acima é a seguinte:

  • Em primeiro lugar, o “ exigir ()” importa o método “ Leia a linha ”Módulo no projeto Node.js atual.
  • A seguir, o “ criarInterface ()” especifica o método “ entrada e saída ”flui como um objeto. O ' entrada ”stream usa o“ processo.stdin ”Propriedade para receber informações do usuário.
  • O ' saída ”stream utiliza o“ processo.stdout ”Propriedade para ler o fluxo de entrada e imprimi-lo como a saída padrão do fluxo de entrada fornecido.
  • Depois disso, o “ rl.question ()”O método recebe a entrada do usuário. Ele passa a pergunta como primeiro e a função de retorno de chamada como segundo argumento. A função de seta de retorno de chamada fornecida recupera os valores inseridos pelo usuário.
  • Na definição do dado “ local na rede Internet ', e a ' categoria ”Função de seta de retorno de chamada, o“ console.log ()” é usado para exibir os valores inseridos.
  • Por último, o “ rl.fechar ()” fecha a interface criada acima.

Saída

Inicie o “ índice .js” executando o comando fornecido:

índice do nó. js

A saída a seguir mostra uma interface readline que recebe a entrada do usuário da linha de comando e, em seguida, exibe o valor inserido como saída padrão:

Método 2: aceitar a entrada da linha de comando usando o módulo “readline-sync”

O ' sincronização readline ”É o módulo de terceiros que recupera de forma síncrona as informações relacionadas às perguntas codificadas e armazena suas respostas correspondentes para operações futuras. Ele atua como uma comunicação entre o cliente e o servidor a partir da linha de comando.

A principal diferença entre módulos assíncronos e síncronos é que o “ assíncrono ”bloqueia a execução do código-fonte até que sua tarefa especificada não seja executada, enquanto os módulos síncronos executam o código linha por linha de maneira sequencial.

Instale o módulo “readline-sync”

O “sincronização readline” O módulo não é um módulo integrado, portanto precisa ser instalado manualmente executando o comando abaixo:

npm install readline - sincronizar

A saída mostra que o módulo readline-sync foi adicionado ao projeto Node.js atual:

Agora, use o “ sincronização readline ”Praticamente seguindo o trecho de código fornecido:

era readlineSync = exigir ( 'readline-sincronização' ) ;
era nomeEmp = readlineSync. pergunta ( 'Nome do empregado: ' ) ;
era jd = readlineSync. pergunta ( 'Descrição do trabalho: ' ) ;
era empresa = readlineSync. pergunta ( 'Empresa: ' , {
} ) ;
console. registro ( nomeEmp + 'funciona como um' + jd + ' em ' + empresa ) ;

A explicação do código acima é a seguinte:

  • Primeiro, o “ sincronização readline ” o módulo é importado dentro do arquivo e seu objeto é armazenado em uma nova variável “ readlineSync ”.
  • A seguir, a consulta é feita com a ajuda do “ pergunta ()” especificando-o como argumento.
  • O mesmo procedimento é usado para fazer as próximas perguntas.
  • Depois disso, o “ console.log ()”é usado para exibir os valores inseridos junto com a string entre aspas.

Saída

Execute o “ índice arquivo .js”:

índice do nó. js

A saída mostra que de forma síncrona, a entrada dos usuários foi obtida e exibida usando o “ sincronização readline ”módulo:

Método 3: aceitar a entrada da linha de comando usando o módulo “prompt”

O ' incitar ”É um módulo assíncrono que cria uma função de prompt para armazenar a entrada do usuário como o valor da variável e, em seguida, recuperá-la como a saída resultante. Ele não precisa configurar explicitamente o fluxo legível e gravável, por isso é muito fácil de usar em comparação com o “ Leia a linha ”módulo.

Instale o módulo “prompt”

O ' incitar ”também é um módulo de terceiros que pode ser facilmente instalado com a ajuda de“ npm ' desta maneira:

prompt de instalação do npm -- salvar

No comando acima, o “ -salvar ”sinalizador adiciona o“ incitar ”módulo para o“ pacote.json ' arquivo.

Pode-se analisar que o “ incitar ” foi adicionado ao projeto Node.js atual:

Agora, use o instalado “ incitar ”Praticamente com a ajuda do seguinte trecho de código:

const incitar = exigir ( 'incitar' )
incitar. começar ( )
incitar. pegar ( [ 'nome do autor' , 'Categoria' ] , ( errar , resultado ) => {
se ( errar ) {
lançar errar

} outro {
console. registro ( `$ { resultado. nome do autor } funciona em $ { resultado. Categoria } ` )

}
} )

No bloco de código indicado acima:

  • O ' exigir ()” importa o método “ incitar ”módulo no projeto.
  • O ' começar ()” inicia o prompt.
  • O ' pegar ()” recebe a entrada do usuário por meio da linha de comando. Ele especifica os nomes das propriedades e a função de seta de retorno de chamada como o primeiro e o segundo parâmetros.
  • A função de retorno de chamada com “ errar ' e ' resultado ”parâmetros definem um“ se-outro ' declaração.
  • Se ocorrer algum tipo de erro, o “ se ”O bloco gerará esse erro, caso contrário o“ outro ”O bloco exibirá os valores das propriedades especificadas como uma saída.

Saída

Execute o “ índice arquivo .js”:

índice do nó. js

A saída a seguir utiliza a entrada do usuário com base nas propriedades especificadas e, em seguida, recupera seus valores como saída:

Método 4: aceitar a entrada da linha de comando usando o módulo “inquirer”

No Node.js, o “ investigador ”É uma maneira fácil de obter a entrada da linha de comando. Ele vem com vários métodos úteis para receber informações dos usuários e retornar a saída usando o “ responder ”objeto e o“. então ()” método integrado.

É útil para fazer diferentes tipos de perguntas ao usuário por meio da linha de comando, como lista, opções, entrada, caixas de seleção e muito mais. Ele fornece uma maneira conveniente de tornar a interface da linha de comandos interativa para tarefas baseadas em consulta.

Siga o guia detalhado em “ Obtenha informações da linha de comando usando o Node.js Inquirer ”Para demonstração prática.

Dica: como passar argumentos da linha de comando no Node?

O usuário também pode passar argumentos da linha de comando. Para tanto, o “ processo.argv ”propriedade pode ser usada. O ' argumento ”é a propriedade integrada do módulo “process” que é usada para passar os argumentos da linha de comando durante a execução do aplicativo Node.js usando o “ ” comando.

Siga o guia detalhado em “ Passe argumentos da linha de comando em Node.js ”Para demonstração prática.

Trata-se de aceitar entradas da linha de comando no Node.js.

Conclusão

Para aceitar a entrada da linha de comando, use o assíncrono “ Leia a linha ”, ou o síncrono “ sincronização readline ”módulo. Além disso, também pode ser realizado através do “ incitar ' ou o ' investigador ”módulo. Exceto pelo “ sincronização de linha vermelha ”Módulo, todos os módulos restantes são assíncronos. Este artigo discutiu todos os métodos possíveis para aceitar entradas da linha de comando no Node.js.