nodejs http代码执行两次的解决方案

有一天 我在研究nodejs的时候 突然发现我创建的httpServer里的代码被执行了两次

var http = require("http");
var httpServer = http.createServer(function(request, response) {
	response.writeHead(200, {
		"Content-Type": "text/html;charset=UTF-8"
	});
	console.log("执行");
	response.end("hello world");
 
}).listen(4000);
console.log("start Server //192.168.8.104:4000");

结果如下图
在这里插入图片描述
于是 我就输出了一下请求的路径

var http = require("http");
var httpServer = http.createServer(function(request, response) {
	response.writeHead(200, {
		"Content-Type": "text/html;charset=UTF-8"
	});
	console.log(request.url);  //修改的地方
	response.end("hello world");
 
}).listen(4000);
console.log("start Server //192.168.8.104:4000");

执行后结果为下图 是原来浏览器还请求了/favicon.ico
在这里插入图片描述
看到这里可能大家就明了了 所以我们可以通过if判断来解决 把代码改成如下

var http = require("http");
var httpServer = http.createServer(function(request, response) {
	response.writeHead(200, {
		"Content-Type": "text/html;charset=UTF-8"
	});
	if(request.url=="/"){
		console.log("执行");
		response.end("hello world");  //代表返回响应
	}
 
}).listen(4000);
console.log("start Server //192.168.8.104:4000");

然后就解决了 当然你也可以写成request.url=="/favicon.ico"什么都不执行就好了
在这里插入图片描述
最后 一点扩展知识 大家好不好奇favicon.ico是什么东西 其实是浏览器在找这个文件 它是一个小图标 就是下面图片的小图标 比如百度的小熊掌图标 简书的简字图标 CSDN的C形图标
在这里插入图片描述
在这里插入图片描述
你或者直接在网址上输入jianshu.com/favicon.ico 你会看到简字图标

你可能感兴趣的:(nodejs http代码执行两次的解决方案)