Убираем двойной запрос HTTP сервера на NodeJS


При выводе URL сайта вы могли обратить внимание на то, что кроме запрошенного адреса в консоль выводится еще и '/favicon.ico'.

Дело в том, что при заходе на сайт браузер автоматически запрашивает фавиконку. Это приводит к тому, что к серверу отправляется два запроса.

Наиболее правильным действием здесь будет на запрос фавиконки отдавать файл с ней. Вы, однако, еще это делать не умеете, поэтому просто сделаем условие, отсекающее двойной вывод в консоль:

http.createServer((request, response) => {
if (request.url != '/favicon.ico'){
console.log(request.url); // теперь выполнится один раз

response.writeHead(200, {'Content-Type': 'text/html'});
response.write('text');
response.end();
}
}).listen(3000);
Такой шаг не избавляет нас от двойного запроса (он всегда будет двойной), но раздражающий двойной вывод в консоль исчезнет.

В дальнейшем мы поправим наш код так, чтобы в браузер действительно отдавалась фавиконка.