Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce176019
Banca
CESPE / CEBRASPE
Órgão
LNA
Ano
2024
Nível
Superior
Cargo
Tecnologista – Especialidade: Desenvolvimento e Arquitetura de Software
O programa a seguir foi salvo no arquivo codigo.js, que faz parte de um projeto com o uso do Node.js.Imagem associada para resolução da questãoPara a execução das instruções desse arquivo, foi emitido, no terminal, o comando node codigo.js na pasta em que se encontra esse arquivo.Com base na situação descrita, assinale a opção que corresponde à saída esperada da execução bem-sucedida do arquivo codigo.js.
  1. Aserver running at http://127.0.0.1:3000/
  2. Bserver created
  3. Ccodigo.js OK
  4. Dhttp://127.0.0.1:3000
  5. EMinha home page
Revelar gabarito e comentário

GabaritoA — server running at http://127.0.0.1:3000/

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Node.js: servidor HTTP e saída no console

Gabarito: letra A. O programa cria um servidor HTTP com o módulo nativo http do Node.js e, no callback de criação, imprime no console a mensagem server running at http://127.0.0.1:3000/. A saída esperada é exatamente essa, pois o console.log é executado imediatamente após a criação do servidor, antes mesmo de qualquer requisição chegar.

O Node.js é um ambiente de execução JavaScript no lado do servidor. Ele permite criar aplicações web sem depender de um navegador. O módulo http é um dos módulos nativos mais importantes, pois fornece as funcionalidades para criar um servidor HTTP. O método http.createServer() recebe uma função de callback que é executada a cada requisição recebida. Essa função recebe dois parâmetros: req (request) e res (response). O método server.listen(porta, callback) faz o servidor começar a escutar na porta especificada. O callback é executado quando o servidor está pronto para receber conexões.

No código da questão, o console.log está dentro do callback de listen, não dentro do callback de createServer. Isso significa que a mensagem é impressa assim que o servidor é iniciado, e não a cada requisição. A mensagem server running at http://127.0.0.1:3000/ é uma convenção comum para indicar que o servidor está ativo e acessível no endereço local. O endereço 127.0.0.1 é o loopback, ou seja, a própria máquina, e a porta 3000 é uma porta padrão para desenvolvimento.

A pegadinha da questão está em distinguir o que é impresso no console (saída padrão) do que é enviado como resposta HTTP ao cliente. O console.log imprime no terminal, enquanto res.end() envia dados para o navegador. As alternativas B, C, D e E apresentam mensagens que poderiam ser impressas em outros contextos, mas não correspondem ao que o código realmente faz. A alternativa A é a única que reproduz fielmente a mensagem do console.log.

Guarde a distinção entre o callback de createServer (executado a cada requisição) e o callback de listen (executado uma única vez, quando o servidor inicia). É nessa diferença que as alternativas se dividem: a mensagem do console.log está no callback de listen, portanto é impressa uma única vez, na inicialização.

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A reproduz exatamente a mensagem impressa pelo console.log no callback de listen. O código console.log('server running at http://127.0.0.1:3000/') é executado quando o servidor é iniciado, imprimindo essa string no terminal. É a saída esperada da execução bem-sucedida do arquivo.

Alternativa B — ❌ Incorreta

A mensagem server created não aparece no código. O console.log imprime server running at http://127.0.0.1:3000/, não server created. A alternativa B inventa uma mensagem que não existe no programa.

Alternativa C — ❌ Incorreta

A mensagem codigo.js OK não é impressa pelo programa. Não há nenhum console.log com essa string no código. A alternativa C é um distrator que não corresponde a nenhuma instrução do arquivo.

Alternativa D — ❌ Incorreta

A alternativa D apresenta apenas o endereço http://127.0.0.1:3000, sem o prefixo server running at. O console.log imprime a string completa, incluindo o texto server running at. A alternativa D omite parte da mensagem, tornando-a incorreta.

Alternativa E — ❌ Incorreta

A mensagem Minha home page não é impressa pelo programa. Essa seria uma possível resposta HTTP enviada ao cliente via res.end(), mas não é o que o console.log imprime. A alternativa E confunde a saída no console com a resposta enviada ao navegador.

PEGA ESSA DICA!

Para questões de Node.js, identifique primeiro onde está o console.log. Se ele está no callback de listen, a mensagem é impressa uma única vez na inicialização. Se está no callback de createServer, é impressa a cada requisição. Essa distinção é a chave para resolver a questão.

Gabarito: letra A

Link permanente: /questoes/ce176019