有一天 我在研究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 你会看到简字图标