nodejs服务器响应次数

var http = require('http');
var service = http.createServer();
var count = 0;
service.on('request', function (req, res) {
    res.writeHead('200',{'Content-type': 'text/html;Charset=utf-8'});
    count++
    res.end(`欢迎第${count}次访问`);
}).listen(3000,function (err){
    if (!err)
        console.log("服务启动成功");
})

输出到页面的count不是每次加1 而是加了两次 输出结果是 1,3,5,7,9... 为什么?

阅读 2.3k
2 个回答

因为你用浏览器访问时,每次都会请求 favicon.ico 文件,所以你的每次请求,实际是两个请求。参考下图。

王顶,node.js 应用开发,408542507@qq.com

如果你想要每次 count 加 1,你可以在 linux 下用 curl 命令发起请求。因为 curl 命令不是图形界面的程序,他不会自动请求 favicon.ico 文件。所以,同样的脚本程序,就会出现你想要的运行效果,参考下图。
王顶,node.js 应用开发,408542507@qq.com

系统会有一个默认的网页图标加载,favicon.icon,如果不需要他加载
在代码里面加一行条件就可以了
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题