← Questões de Programação

Programação · FGV · 2022

Questão comentada de Programação

Analise o código Node.JS, exibido a seguir, que estabelece um servidor HTTP que recebe e responde mensagens. var http = require('http'); http.createServer(function (req, res) { res.write('Ok'); res.end(); }).listen(8080); Assinale a afirmativa correta a respeito dessa operação.

Gabarito: C

Esse trecho cria um servidor HTTP em Node.js. A chamada http.createServer recebe uma função de callback que será executada sempre que uma requisicao chegar ao servidor, recebendo dois parametros padrao: req e res. O req representa a mensagem de entrada, com os dados da requisicao feita pelo cliente, e o res representa a resposta que o servidor vai montar e devolver. Em outras palavras, voce recebe a chamada, prepara a resposta e encerra a conversa com res.end(). No caso da questao, o ponto importante e identificar o tipo do parametro req. Em Node.js, ele corresponde a um objeto do tipo http.IncomingMessage, que encapsula a requisicao HTTP recebida. Isso e o que a alternativa C afirma, por isso ela esta correta. A propria documentacao do Node.js define o primeiro parametro do callback de createServer como IncomingMessage e o segundo como ServerResponse. As outras alternativas tentam confundir voce com ideias de cliente, erro de parametros ou opcionalidade. Mas aqui nao ha misterio: a funcao e do lado servidor, e tanto req quanto res fazem parte do contrato da API. Se voce trocar esses parametros ou imaginar que sao opcionais por padrao, cai na pegadinha. Resumo pratico: req chega com a pergunta do cliente, res vai com a resposta do servidor. No codigo, res.write('Ok') envia o conteudo e res.end() fecha a resposta. Simples, elegante e muito cobrado em prova.

Continue treinando

Questões relacionadas