从零开始学习Node.js系列教程五:服务器监听方法示例

发布时间 - 2026-01-11 00:38:40    点击率:

本文实例讲述了Node.js服务器监听方法。分享给大家供大家参考,具体如下:

httpsnifferInvoke.js

var http = require('http');
var sniffer = require('./httpsniffer');
var server = http.createServer(function(req, res){
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello, World!\n');
});
sniffer.sniffOn(server);
server.listen(3000);

httpsniffer.js

//http sniffer 监听每个服务器事件,然后输出每个事件的相关信息
var url = require('url');
var util = require('util');
exports.sniffOn = function(server){
  server.on('request', function(req, res){
    util.log('e_request');
    util.log(reqToString(req));
  });
  server.on('close', function(error){
    util.log('e_close error=' + error);
  });
  server.on('checkContinue', function(req, res){
    util.log('e_checkContinue');
    util.log(reqToString(req));
    res.writeContinue();
  });
  server.on('upgrade', function(req, socket, head){
    util.log('e_upgrade');
    util.log(reqToString(req));
  });
  server.on('clientError', function(){
    util.log('e_clientError');
  });
}
var reqToString = function(req){
  var ret = 'request' + req.method + ' ' + req.httpVersion + ' ' + req.url + '\n';
  ret += JSON.stringify(url.parse(req.url, true)) + '\n';
  var keys = Object.keys(req.headers);
  for (var i = 0; i < keys.length; i++){
    var key = keys[i];
    ret += i + ' ' + key + ': ' + req.headers[key] + '\n';
  }
  if (req.trailers) ret += req.trailers + '\n';
  return ret;
}
exports.reqToString = reqToString;

希望本文所述对大家nodejs程序设计有所帮助。


# Node.js  # 服务器  # 监听  # 从零开始学习Node.js系列教程之设置HTTP头的方法示例  # 从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析  # 从零开始学习Node.js系列教程六:EventEmitter发送和接收事件的方法示例  # 从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例  # 从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例  # 从零开始学习Node.js系列教程四:多页面实现的数学运算示例  # 从零开始学习Node.js  # 给大家  # 相关信息  # 所述  # 程序设计  # 讲述了  # Content  # Type  # writeHead  # function  # req  # res  # text  # return  # url  # listen  # plain  # World  # sniffOn  # httpsnifferInvoke  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站制作软件免费下载安装,有哪些免费下载的软件网站?  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  如何在万网利用已有域名快速建站?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何在 React 中条件性地遍历数组并渲染元素  如何正确下载安装西数主机建站助手?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何在阿里云服务器自主搭建网站?  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  使用豆包 AI 辅助进行简单网页 HTML 结构设计  如何在IIS7上新建站点并设置安全权限?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  大同网页,大同瑞慈医院官网?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  网站制作软件有哪些,制图软件有哪些?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  北京网站制作的公司有哪些,北京白云观官方网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  如何在阿里云部署织梦网站?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  长沙企业网站制作哪家好,长沙水业集团官方网站?  如何在腾讯云免费申请建站?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  微信小程序 闭包写法详细介绍  JS碰撞运动实现方法详解  如何用已有域名快速搭建网站?  黑客如何利用漏洞与弱口令入侵网站服务器?  js实现获取鼠标当前的位置  魔方云NAT建站如何实现端口转发?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何用AWS免费套餐快速搭建高效网站?  如何打造高效商业网站?建站目的决定转化率  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  JavaScript实现Fly Bird小游戏  Laravel怎么实现验证码(Captcha)功能  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  韩国服务器如何优化跨境访问实现高效连接?  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  详解Android图表 MPAndroidChart折线图  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  青岛网站建设如何选择本地服务器?