Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 1 - Exercício "Instalação e primeiros testes com o Node.js."

No exemplo dado pela questão, fiquei com uma dúvida:

var http = require('http');
var porta = 3000;
var ip = "localhost";

var server = http.createServer(function(req, res) {
    console.log("Recebendo request");
    res.writeHead(    200, {'Content-Type': 'text/html'});
    res.end('<html><body>Request recebido!</body></html>');
});

server.listen(porta, ip);

console.log("Server running at http://" + ip + ":" + porta + "/");

No console é exibido 2x a mensagem Recebendo request quando se faz uma primeira requisição:

Server running at http://localhost:3000/
Recebendo request
Recebendo request

Gostaria de entender o processo. Na minha cabeça quando se faz essa primeira requisição ele receberia e responderia. Parece que está entrando 2x na função de callback criada.

O que aconteceu, exatamente, nesse caso?

2 respostas
solução!

Oi Rodrigo,

Talvez vc esteja usando o chrome... O chrome depois de receber a resposta do servidor, pelo que percebi, faz uma nova requisição pedindo pelo favicon da página. Por isso que a função é executada 2x. Da uma testada no firefox, acho que não vai acontecer.

Perfeito Alberto, muitíssimo obrigado. Fiz esse teste nos dois browsers e analisei na ferramenta do desenvolvdedor de ambos, na aba "Network", o que estava acontecendo. Aconteceu exatamente como você disse. O Chrome por algum motivo busca o favicon.ico sem ao menos estar escrito no código. No firefox a requisição é única. Agora, o por quê do Chrome estar fazendo isso, não faço a mínima idéia. rs

De qualquer forma muito obrigado pela ajuda, me esclareceu muito.