Ao terminar esta aula, você vai conseguir
- Diferenciar JavaScript, navegador e runtime Node.js
- Executar um arquivo com o comando node
- Reconhecer entrada, processamento e saída em uma tarefa de servidor
JavaScript é a linguagem; Node.js é um runtime, o ambiente que lê e executa essa linguagem fora do navegador. Essa diferença parece detalhe, mas evita uma confusão frequente: instalar Node não cria uma nova linguagem e abrir um arquivo com Node não cria uma página. O runtime oferece recursos próprios para processos, arquivos e rede, que vamos usar ao longo do curso.
Pense numa receita e em duas cozinhas. A receita é o JavaScript; navegador e
Node.js são cozinhas com utensílios diferentes. A mesma conta funciona nas duas,
mas document.querySelector pertence à cozinha do navegador, enquanto
process.argv pertence à do Node. A analogia termina aqui: runtime não é um
lugar físico, e sim software com APIs e regras de execução.
Execute um arquivo e observe a saída
Crie uma pasta, abra o terminal nela e confirme a instalação:
node --versionAgora crie app.js:
const produto = 'Teclado';
const preco = 180;
function resumirPedido(nome, valor) {
return `${nome}: R$ ${valor.toFixed(2)}`;
}
console.log(resumirPedido(produto, preco));Execute com node app.js. A saída esperada é Teclado: R$ 180.00. O terminal
iniciou um processo, Node carregou o arquivo, avaliou as declarações, chamou
a função e escreveu a saída. Quando não havia mais trabalho pendente, o processo
terminou. Esse ciclo curto já contém a base de um programa de servidor; a
diferença é que um servidor mantém trabalho pendente enquanto aguarda pedidos.
O caminho mental: entrada, regra e saída
Um back-end recebe uma entrada, aplica regras e produz uma saída. A entrada pode vir de argumentos do terminal, de um arquivo ou de uma requisição HTTP. A regra é a parte que decide o que fazer. A saída pode ser uma linha no terminal, um arquivo atualizado ou uma resposta enviada ao cliente.
Leia um argumento com a API process:
const nome = process.argv[2] ?? 'visitante';
const mensagem = `Olá, ${nome}!`;
console.log(mensagem);Salve como saudacao.js e rode node saudacao.js Ana. Você deve receber
Olá, Ana!. Aqui process.argv[2] é a entrada, a template string faz o
processamento e console.log entrega a saída. Se rodar sem nome, o operador
?? usa o valor alternativo.
O laboratório não finge ser um servidor
O laboratório desta página executa JavaScript em um sandbox do navegador. Ele
não abre portas, não acessa process e não oferece as APIs do Node. O que ele
permite treinar de verdade é a lógica pura: receber um objeto, verificar
regras e devolver outro objeto. Essa lógica pode ser movida para um servidor
porque não depende da tela nem do sistema operacional.
Mude pago para false e confirme o status 402. Depois volte para true,
troque itens por 0 e confirme o status 400. Cada alteração tem um resultado
observável; isso é mais útil do que apenas ler a função.
Observe também o encerramento do processo. Um script comum termina quando não há mais trabalho agendado; um servidor continua porque a escuta de rede permanece ativa. Essa diferença ajuda a diagnosticar programas que parecem “presos”: antes de forçar a saída, descubra qual recurso ainda está aberto. Para esta aula, rode o comando, confira a linha esperada e veja o prompt do terminal retornar.
Erro comum: misturar APIs dos ambientes
Se você colocar document.querySelector em app.js e executar com Node, verá
um erro porque document não existe nesse runtime. Se colar process.argv num
script comum do navegador, ocorrerá a confusão inversa. Antes de usar uma API,
pergunte: ela pertence à linguagem ou ao ambiente?
Na missão, crie saudacao.js, rode com dois argumentos e guarde as duas saídas.
O critério de conclusão é simples: mudar somente o argumento precisa mudar
somente o nome exibido. Na próxima aula, vamos dividir programas maiores em
módulos e registrar as decisões do projeto no package.json.
Laboratório ao vivo
Decisão de pedido com JavaScript
Este sandbox roda no navegador, não no Node.js. Altere o pedido e execute para testar a mesma lógica pura de decisão que poderia viver num servidor.
Pare e pense
Qual é o papel do Node.js ao executar um arquivo JavaScript?
Node.js é o ambiente de execução. A linguagem continua sendo JavaScript, mas passa a ter APIs adequadas a processos, arquivos, rede e servidor.
Faça sem copiar
Crie saudacao.js, leia um nome de process.argv e exiba uma saudação. Rode com dois nomes diferentes e confirme que cada saída contém o argumento recebido.
Fontes para consultar
Terminou a missão?
Marque apenas quando você conseguir explicar o conceito e concluir o desafio. O progresso fica salvo somente neste navegador.
Próxima: Módulos e package.json: organize o projeto Node.js →