Убираем двойной запрос 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);

Такой шаг не избавляет нас от двойного запроса (он всегда будет двойной), но раздражающий двойной вывод в консоль исчезнет.

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

Сделайте так, чтобы у вас не было двойного вывода в консоль.



Чат с GPT Компилятор