Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024
Programação›Linguagens 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.Para 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.
Aserver running at http://127.0.0.1:3000/
Bserver created
Ccodigo.js OK
Dhttp://127.0.0.1:3000
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.