Nodejs Http Server api执行流程请解释一下?

时间:2018-12-10 05:49:43

标签: javascript node.js http nodes node-modules

我有以下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"); 在代码中两次,但是我不明白为什么它在单个请求上调用了两次,而当我再次发送请求时,它再次向我显示了一些输出可以解释。

2 个答案:

答案 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");})

enter image description here

  

大多数浏览器会自动寻找*favicon.ico*,如果需要的话,您可以避免

code

答案 1 :(得分:0)

那很正常-您的浏览器拨打了多个电话。

例如,大多数浏览器都会调用/favicon.ico。

尝试记录网址:

console.log(req.url);

,您将看到正在调用的内容。