Node.js Intermediário: Parte I ─ Interpretador Interativo de Comandos (REPL)

Acesso Rápido

Node.js REPL: Uma introdução

Alguns exemplos de comandos do Node.js sendo executados pelo REPL

Hoje em dia, a maioria das linguagens de programação oferece algum tipo de suporte para um interpretador interativo de comandos. Geralmente referenciado como REPL, esse recurso tem esse nome devido aos quatro procedimentos que são realizados em sequência, interpretando e executando cada um dos comandos que são progressivamente digitados pelo usuário.

Essa sigla representa as seguintes ações:

  • R (read): faz a leitura do que foi digitado pelo usuário na tela do terminal
  • E (evaluate): avalia o que foi escrito e, se tudo estiver correto, executa a instrução
  • P (print): imprime no terminal o resultado obtido no passo anterior
  • L (loop): volta para a primeira etapa (R), repetindo todo o procedimento

O uso desse recurso pode trazer uma série de vantagens:

  1. Testar diversos aspectos de uma linguagem, sem que seja preciso criar um projeto dedicado unicamente para isso
  2. Realizar cálculos rápidos, independentemente da sua complexidade, usando somente a linha de comando
  3. Experimentar novos algoritmos antes de incluí-los no seu projeto
  4. Ter um divertido playground interativo durante o aprendizado

Node.js: Confirmando sua presença no sistema

Para poder acompanhar essa série, será preciso ter o Node.js instalado no seu sistema.

Fazer esse teste é simples: ao abrir a tela do terminal, digite o seguinte comando: node -v, pressionando ENTER em seguida. Se o Node estiver corretamente instalado, será exibido o número da sua versão, como demonstrado abaixo.

Verificando se o Node.js está instalado no sistema e qual a sua versão

Se aparecer uma mensagem de erro, será preciso seguir os passos listados no site oficial para instalar a última versão do Node no seu sistema.


REPL: Executando e testando algumas funções

Para executar o interpretador interativo de comandos do Node.js, basta digitar o seguinte comando no terminal: node.

Um cursor ficará piscando, aguardando a entrada de alguns comandos. Comece com algumas operações matemáticas simples, e observe que os resultados são exibidos assim que a tecla ENTER for pressionada.

Testando algumas operações aritméticas simples no REPL do Node.js

Algumas observações:

  1. Mesmo antes de pressionar a tecla ENTER, o interpretador exibe uma prévia do resultado na linha de baixo. Isso pode ser bastante útil em alguns casos, como quando ainda estamos nos habituando com alguns comandos ou métodos, e podemos ter um preview antes de realmente executá-los
  2. Não é preciso chamar console.log() para imprimir o resultado na tela: para cada comando executado, a sua saída será automaticamente impressa
  3. Quando for impresso o termo undefined, isso significa que a instrução executada não gerou nenhuma informação para ser impressa. Isso acontece em vários casos, como, por exemplo, a declaração de uma variável, mas não quer dizer que ela não foi criada, como podemos ver abaixo…
Exemplo da declaração de uma variável, e o termo undefined sendo impresso.


REPL: Descobrindo comandos e métodos

Um dos recursos mais interessantes para quem está aprendendo Node.js usando o REPL é a possibilidade de conhecer todos os comandos disponíveis, assim como todos os métodos de um objeto, a partir de uma simples sequência de teclas: TAB + TAB.

Faça o teste agora: no REPL, pressione TAB TAB, e veja todos os comandos que serão impressos na tela…

Relação de todos os comandos do Node.js exibidos após pressionar a tecla TAB duas vezes seguidas

Relação de todos os comandos do Node.js após pressionar a tecla TAB duas vezes seguidas.

Seu uso é poderoso, especialmente quando precisamos lembrar (ou conhecer) os métodos disponíveis para um determinado objeto.

Por exemplo, se tivermos uma variável do tipo String, e gostaríamos de lembrar o nome do método usado para tornar todas as suas letras em maiúsculas, poderíamos usar o recurso do TAB TAB, como demonstrado abaixo…

Obtendo uma relação com todos os métodos que podem ser usados em uma String.

O procedimento foi esse:

  1. Criamos uma variável nome, e atribuímos a ela uma String (Eduardo)
  2. Para obter a relação de todos os métodos que podem ser usados nessa varíável, foi digitado nome. (o nome da variável, seguido de um ponto)
  3. Ao pressionar a tecla TAB duas vezes, são exibidos todos os métodos aplicáveis à variável
  4. Para usar qualquer uma das opções listadas, digite as primeiras letras e complete todo o comando, pressionando TAB mais uma vez

REPL: Lembrando o último resultado

Muitas vezes, podemos precisar “lembrar” qual foi o resultado da última operação. Um atalho para obter esse valor é o underscore (_). Basta digitá-lo no terminal e pressionar ENTER para ter acesso a ele, ou até incluí-lo em novas operações, como demonstrado abaixo manipulando valores numéricos e vetores.

Obtendo uma relação com todos os métodos que podem ser usados em uma String.

REPL: Gravando e carregando seções

Muitas vezes, podemos precisar que algum código criado por nós esteja novamente presente em uma seção do REPL. Em vez de redigitá-lo todas as vezes, é possível gravar uma seção, e carregá-la posteriormente.

Vamos ilustrar com um exemplo:

  1. Em uma nova seção do REPL, crie uma função que retorne um número aleatório até um limite especificado pelo usuário:
const aleatorio = (maximo) => {
  return Math.floor(Math.random() * maximo) + 1;
};
  1. Salve essa seção, usando o comando .save aleatorio.js (ponto, seguido pelo comando save e o nome do arquivo)
  2. Teste a função, digitando aleatorio(10)
  3. Observe que será impresso um valor entre 1 e 10
  4. Encerre a seção pressionando CTRL-D
  5. Inicie uma nova seção do REPL
  6. Teste o mesmo comando do passo 3: observe que ele não funciona, pois essa é uma nova seção cuja função aleatório ainda não foi declarada
  7. Carregue a seção que foi salva no passo 2, usando o comando .load aleatorio.js (ponto, seguido pelo comando load e o nome do arquivo)
  8. Teste novamente o comando do passo 3 e veja que, agora, ele está funcionando novamente

No vídeo abaixo, é possível ver cada uma dessas operações sendo realizadas…

Gravando uma seção para ser reaproveitada em uma seção futura do REPL.

Encerramento

Com essa última dica, encerramos a primeira parte da série de tópicos intermediários sobre o Node.js.

Espero que vocês tenham gostado de conhecer um pouco mais sobre o REPL, e qualquer correção, dúvida ou sugestão será muito apreciada. É só deixar um comentário na seção abaixo.

Em breve, nesse mesmo site, a segunda parte dessa série será publicada. Até lá!