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 “ nó
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:
- Usando o módulo “readline”
- Usando o módulo “readline-sync”
- Usando o módulo “prompt”
- Usando o módulo “inquiridor”
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ó. jsA 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 - sincronizarA 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ó. jsA 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 -- salvarNo 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ó. jsA 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 “ nó
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.