我有以下Node.js程序
var http = require('http');
var url = require('url');
var server = http.createServer((req,res)=>{
console.log("Enter into the 3000 port");
res.end("hello world")
console.log("Enter into the 3000 port");
}).listen(3000,()=>{console.log("the server is listen to the port 3000");});
我在浏览器中加载localhost:3000时正在运行这些代码,当我编写console.log("Enter into the 3000 port");
来检查执行在内部的工作方式时,得到以下输出。
输出:
the server is listen to the port 3000
Enter into the 3000 port
Enter into the 3000 port
Enter into the 3000 port
Enter into the 3000 port
但是我已经写了代码console.log("Enter into the 3000 port");
在代码中两次,但是我不明白为什么它在单个请求上调用了两次,而当我再次发送请求时,它再次向我显示了一些输出可以解释。
答案 0 :(得分:1)
var http = require('http');
var url = require('url');
var server = http.createServer((req,res)=>{
if (req.url === '/favicon.ico') { return } // if you don't serve this hit
console.log(req.url);
console.log("Enter into the 3000 port");
res.end("hello world")
console.log("Enter into the 3000 port");
}).listen(3000,()=>{console.log("the server is listen to the port 3000");})
大多数浏览器会自动寻找
*favicon.ico*
,如果需要的话,您可以避免
答案 1 :(得分:0)
那很正常-您的浏览器拨打了多个电话。
例如,大多数浏览器都会调用/favicon.ico。
尝试记录网址:
console.log(req.url);
,您将看到正在调用的内容。