NodeJS 为什么每个请求都要调用两次回调函数?

mzsu5hc0  于 2022-11-22  发布在  Node.js
关注(0)|答案(2)|浏览(218)

我是第一次接触node js,这种行为对我来说很奇怪!在下面的代码片段中,

'use strict';
var http = require('http');
var numberOfRequests = 0;
http.createServer(function (request, responce) {
    console.log('Request number ' + numberOfRequests + ' received!');
    responce.writeHead(200);
    responce.write("Here is responce to your request..");
    responce.end();
    numberOfRequests++;
}
).listen(8080);
console.log('listening ...');

对于每个

localhost:8080

在Chrome上调用,应用程序在控制台上写入两次??例如,对于单个8080调用,它会打印输出:

Request number 0 received!
Request number 1 received!

我正在使用Visual Studio运行此节点js应用程序。

qojgxg4l

qojgxg4l1#

通常,当你看到每个页面有两个请求时,一个请求所需页面,另一个请求网站的favicon。这是大多数浏览器的做法,除非页面中有 meta标记告诉浏览器不要请求favicon资源。如果你在处理程序中这样做:

console.log(request.url)

一般来说,你不希望有一个Web服务器,你从来不看什么资源被请求。如果你的逻辑基于一个特定的资源被请求,如/,那么你可以很容易地忽略其他类型的请求,如favicon。

2izufjch

2izufjch2#

运行curlhostname:port发出一个请求,这证明是浏览器发出多个请求。

相关问题