Como usar o REPL do Node.js
O comando node é o que usamos para executar nossos scripts Node.js:
node script.jsSe executarmos o comando node sem nenhum script para executar ou sem nenhum argumento, iniciamos uma sessão REPL:
nodeNOTA
REPL significa Read Evaluate Print Loop (Ler Avaliar Imprimir Loop), e é um ambiente de linguagem de programação (basicamente uma janela de console) que recebe uma única expressão como entrada do usuário e retorna o resultado para o console após a execução. A sessão REPL oferece uma maneira conveniente de testar rapidamente código JavaScript simples.
Se você tentar agora no seu terminal, é isso que acontece:
> node
>O comando permanece em modo ocioso e espera que entremos com algo.
TIP
se você não tiver certeza de como abrir seu terminal, pesquise no Google "Como abrir o terminal no seu sistema operacional".
O REPL está esperando que entremos com algum código JavaScript, para ser mais preciso.
Comece simples e digite:
> console.log('test')
test
undefined
>O primeiro valor, test, é a saída que dissemos ao console para imprimir, então obtemos undefined que é o valor de retorno da execução de console.log(). O Node leu esta linha de código, avaliou-a, imprimiu o resultado e, em seguida, voltou a esperar por mais linhas de código. O Node fará um loop por estas três etapas para cada trecho de código que executarmos no REPL até sairmos da sessão. É daí que o REPL tirou o seu nome.
O Node imprime automaticamente o resultado de qualquer linha de código JavaScript sem a necessidade de instruí-lo a fazê-lo. Por exemplo, digite a seguinte linha e pressione enter:
> 5==5
false
>Observe a diferença nas saídas das duas linhas acima. O Node REPL imprimiu undefined após executar console.log(), enquanto, por outro lado, apenas imprimiu o resultado de 5== '5'. Você precisa ter em mente que o primeiro é apenas uma declaração em JavaScript, e o último é uma expressão.
Em alguns casos, o código que você deseja testar pode precisar de várias linhas. Por exemplo, digamos que você deseja definir uma função que gera um número aleatório, na sessão REPL digite a seguinte linha e pressione enter:
function generateRandom()
...O Node REPL é inteligente o suficiente para determinar que você ainda não terminou de escrever seu código e entrará em um modo multi-linha para você digitar mais código. Agora termine a definição da sua função e pressione enter:
function generateRandom()
...return Math.random()A variável especial:
Se após algum código você digitar _, isso irá imprimir o resultado da última operação.
A tecla de seta para cima:
Se você pressionar a tecla de seta para cima, você terá acesso ao histórico das linhas de código anteriores executadas na sessão REPL atual, e até mesmo nas sessões anteriores.
Comandos Dot
O REPL possui alguns comandos especiais, todos começando com um ponto .. Eles são:
.help: mostra a ajuda dos comandos dot..editor: habilita o modo editor, para escrever código JavaScript multilinhas com facilidade. Uma vez que você está neste modo, digitectrl-Dpara executar o código que você escreveu..break: ao inserir uma expressão de múltiplas linhas, inserir o comando.breakirá abortar a entrada adicional. O mesmo que pressionarctrl-C..clear: redefine o contexto REPL para um objeto vazio e limpa qualquer expressão multilinhas atualmente sendo inserida..1oad: carrega um arquivo JavaScript, relativo ao diretório de trabalho atual..save: salva tudo o que você inseriu na sessão REPL em um arquivo (especifique o nome do arquivo)..exit: sai do repl (o mesmo que pressionarctrl-Cduas vezes).
O REPL sabe quando você está digitando uma declaração de múltiplas linhas sem a necessidade de invocar .editor. Por exemplo, se você começar a digitar uma iteração como esta:
[1, 2,3].foxEach(num=>{e você pressionar enter, o REPL irá para uma nova linha que começa com 3 pontos, indicando que você agora pode continuar a trabalhar naquele bloco.
1... console.log (num)
2...}Se você digitar .break no final de uma linha, o modo multilinhas irá parar e a declaração não será executada.
Executar REPL a partir de arquivo JavaScript
Podemos importar o REPL em um arquivo JavaScript usando repl.
const repl = require('node:repl');Usando a variável repl podemos realizar várias operações. Para iniciar o prompt de comando REPL, digite a seguinte linha:
repl.start();Execute o arquivo na linha de comando.
node repl.jsVocê pode passar uma string que mostra quando o REPL começa. O padrão é '>' (com um espaço à frente), mas podemos definir um prompt personalizado.
// um prompt estilo Unix
const local = repl.start('$ ');Você pode exibir uma mensagem ao sair do REPL
local.on('exit', () => {
console.log('saindo do repl');
process.exit();
});Você pode ler mais sobre o módulo REPL na documentação do repl.