Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Dúvida] Interação com o terminal Node.JS

Olá, fazendo pesquisas e quebrando um pouco a cabeça, vi que há duas formas de importar a biblioteca readline:

//Essa forma de utilizar o readline é o padrão antigo do node.js, chamando o CommonJS(CJS)
const readline = require('readline');
const leitor = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

//Essa é a forma atual de usar o readline que é o padrão oficial do JavaScript e que funciona tanto no navegador quanto no servidor
import { createInterface } from 'readline';
const leitor = createInterface({
    input: process.stdin,
    output: process.stdout
})

Sigo no curso usando a forma antiga com o require ou utilizo o import que é o padrão mais atualizado e utilizado atualmente?
Desde já agradeço!

1 resposta

Olá, Fernando! Como vai?

Sua dúvida é bem válida. Para seguir o curso, recomendo continuar usando o require, porque ele funciona direto no Node.js sem precisar alterar configurações do projeto. O import também é correto e mais alinhado ao padrão ES Modules, mas no Node.js ele exige alguns ajustes, como usar "type": "module" no package.json ou salvar o arquivo com extensão .mjs.

Veja este exemplo com require:


const readline = require('readline');

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

leitor.question('Digite seu nome: ', function(nome) {
  console.log('Ola, ' + nome);
  leitor.close();
});

Esse código cria uma interface de leitura no terminal, pergunta o nome da pessoa e depois mostra a resposta no console. Para o curso, usar require é uma boa escolha, porque evita configurações extras e permite focar na lógica de programação. Depois, quando você estudar módulos em JavaScript com mais profundidade, vale praticar também com import.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado
Conteúdos relacionados
Node.js: gerenciando threads e processos
Node.js: dominando streams e processando arquivos pesados