Como usar o REPL da Node.js

REPL significa Read-Evaluate-Print-Loop ou Laço de Impressão, Avaliação e Leitura, e é excelente maneira de explorar as funcionalidades da Node.js de maneira rápida

Autores do Artigo
Tabela de Conteúdos

O comando node é o que usamos para executar os nossos programas de Node.js:

Se executarmos o comando node sem nenhum programa a executar ou sem quaisquer argumentos, começaremos uma sessão do REPL:

Nota: REPL significa Read Evaluate Print Loop ou Laço de Impressão Avaliação e Leitura, e é um ambiente de linguagem de programação (basicamente uma janela da consola) que recebe uma expressão única como entrada do utilizador e retorna o resultado de volta para a consola depois da execução. A sessão do REPL fornece uma maneira conveniente para rapidamente testar código simples de JavaScript.

Se o experimentares agora no teu terminal, é isto que acontece:

O comando fica no modo parado e espera que introduzamos alguma coisa.

Dica: se não tiveres a certeza de como abrir o teu terminal, pesquise no motor de pesquisa Google por "Como abrir o terminal no teu-sistema-operacional":

O REPL aguarda até introduzirmos algum código de JavaScript, para ser mais preciso.

Comece simples e introduza:

O primeiro valor, test, é a saída que dissemos à consola para imprimir, então recebemos undefined que é o valor de retorno da execução de console.log(). A Node leu esta linha de código, avaliou-a, imprimiu o resultado, e então voltar à aguardar mais linhas de código. A Node percorrerá através destas três etapas para cada pedaço de código que executamos no REPL até abandonar-mos a sessão. É onde o REPL conseguiu o seu nome.

A Node imprime automaticamente o resultado de qualquer linha de código de JavaScript sem precisar de instruí-la a fazer isto. Por exemplo, digite a seguinte linha e pressione enter:

Nota a diferença nas saídas das duas linhas acima. Na primeira linha o REPL da Node imprimiu undefined depois de executada o método console.log(), enquanto na linha dois, o REPL apenas imprimiu o resultado do 5 === '5'. Tu precisas de lembrar-te de que o anterior é apenas uma declaração no JavaScript, e o último é uma expressão.

Em alguns casos, o código que quiseres testar pode precisar de várias linhas. Por exemplo, digamos que queres definir uma função que gera um número aleatório, na sessão do REPL digite a seguinte linha e pressione enter:

O REPL da Node.js o inteligente o suficiente para determinar que ainda não terminaste de escrever o teu código, e irá para o modo de várias linhas para podes digitar mais código. Agora termine a definição da tua função e pressione enter:

A variável especial _

Se depois de algum código digitares _, este imprimirá o resultado da última operação.

A tecla seta para Cima

Se pressionares a tecla seta cima ou , receberás o acesso à história das linhas de código anteriores executadas na atual, e até mesmo sessões de REPL anteriores.

Comandos ponto

O REPL tem alguns comandos especiais, todos começando com um ponto .. Eles são:

  • .help: exibe a lista de comandos . disponíveis
  • .editor: ativa o modo editor, para escrever código de JavaScript de várias linhas com facilidade. Um vez que estiveres neste modo, pressione a combinação ctrl-D para executar o código escrito.
  • .break: quando estiveres introduzindo uma expressão de várias linhas, digitar o comando .break abortará a entrada seguinte. O mesmo que pressionar a combinação ctrl-C.
  • .clear: reinicia o contexto do REPL para um objeto vazio e limpa quaisquer expressões de várias linhas sendo digitadas atualmente.
  • .load: carrega um ficheiro de JavaScript, relativo ao atual diretório de trabalho.
  • .save: guarda tudo que digitaste na sessão do REPL em um ficheiro (especifique o nome do ficheiro).
  • .exit: abandona o REPL (o mesmo que pressionar a combinação ctrl-C duas vezes).

O REPL sabe quando estás a digitar uma declaração de várias linhas sem precisar de invocar o .editor.

Por exemplo se começares a digitar uma iteração como esta:

e se pressionares enter, o REPL irá para uma nova linha que começa com reticências (símbolo ...), indicando que agora podes continuar a trabalhar naquele bloco:

Se digitares .break no final de uma linha, o modo de várias linhas parará e a declaração não será executada.

Executar o REPL a partir de um ficheiro de JavaScript

Nós podemos importar o REPL em um ficheiro de JavaScript usando o módulo repl:

Com o uso da variável repl podemos realizar várias operações. Para começar o ponto de comando do REPL, digite a seguinte linha:

Execute o ficheiro na linha de comando:

Tu podes passar uma sequência de caracteres que será exibida quando o REPL iniciar. O padrão é '> ' (com um espaço adicional), mas podemos definir um ponto personalizado:

Tu podes exibir uma mensagem enquanto estiveres a sair do REPL:

Tu podes ler mais a respeito do módulo do REPL na documentação do repl.