为了账号安全,请及时绑定邮箱和手机立即绑定

一次请求为什么createserver的毁掉函数中打印两次?

http.createServer(function (request, response) {

response.writeHead(200, {'Content-Type': 'text/plain'});

response.end('Hello China\n');

console.log('向客户端发送信息');

}).listen(8888);

上面的代码:当访问请求时,会打印两次“向客户端发送信息”

正在回答

2 回答

谢谢了,在http://cnodejs.org/topic/518772806d38277306804020找到解释了,并且也验证通过了;

var http=require('http');var i=0;var req=function(req,res){

i=i+1;
console.log(i,req.url);
res.writeHead(200,{'Content-Type':'text/plain'});
res.end('Hello World\n');};http.createServer(req).listen(8888,"127.0.0.1");console.log('Server running...');

这时输出为: 

Server running… 

1:/ 

2:/favicon.ico

我们发现favicon也被当做是一次请求,故被执行了两次,另外有意思的地方就是把res.end(‘Hello World\n’);注释或删除,console.log(i)就不会被执行两次了。


0 回复 有任何疑惑可以回复我~

request时,执行一次,服务返回response又被执行一次。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(一)
  • 参与学习       219394    人
  • 解答问题       896    个

本视频教程带你揭开Node.js的面纱,带你走进一个全新世界

进入课程

一次请求为什么createserver的毁掉函数中打印两次?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信