Entrada via console do NodeJS com uso de callback

Node.js permite execução do código JavaScript fora de um browser, permitindo a interação com dados em arquivos, criação de servidores Web e criação de aplicações de terminal de trabalho. Uma das maneiras com as quais o Node permite leitura de dados do usuário em ambientes offline como o VSCode é através de um módulo especial chamado readline, que permite criar uma interface de conexão com o stream de entrada.

[EXEMPLO] Programa que cumprimenta o usuário.

Uso de interface com stream de entrada.

const interface = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout
});

interface.question('Qual o seu nome?\n', nome => {
    console.log(`Olá, ${nome}!`);
    interface.close();
});

A função question(query,callback) exibe a query para o usuário no stream de saída e assim que o usuário fornece a entrada desejada, a função de callback é aplicada tendo essa entrada como primeiro argumento.

[EXEMPLO] Programa para calcular a área de uma elipse com leitura de dados do usuário.

const interface = require('readline').createInterface({
    input: process.stdin,
    output: process.stdout
});

const fareaEli = (x, y, pi=3.14) => pi*x*y

interface.question('r1, r2? ', input => {
    const raio = input.split(" ")
    const r1 = parseFloat(raio[0])
    const r2 = parseFloat(raio[1])
    const resultado = fareaEli(r1,r2)
    console.log(`Área da elipse é ${resultado}!`)
    interface.close()
});

⚠️ Para executar os códigos acima no VSCode, por exemplo, é preciso acessar o TERMINAL e executar o referido código através do comando a seguir (naturalmente, você deve estar no subdiretório onde seu arquivo .js está presente):

$ node nomedoarquivo.js