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


Posted in Javascript onApril 13, 2017

本文实例讲述了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;

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

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

Javascript 相关文章推荐
css图片自适应大小
Nov 28 Javascript
jquery中防刷IP流量软件影响统计的一点对策
Jul 10 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
Nov 21 Javascript
JavaScript 用cloneNode方法克隆节点的代码
Oct 15 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
js格式化时间的方法
Dec 18 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
jQuery实现弹窗居中效果类似alert()
Feb 27 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
Vue实现多标签选择器
Nov 28 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
Angularjs 动态添加指令并绑定事件的方法
Apr 13 #Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 #Javascript
JS传参及动态修改页面布局
Apr 13 #Javascript
从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
Apr 13 #Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
Apr 13 #Javascript
MUI  Scroll插件的使用详解
Apr 13 #Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 #Javascript
You might like
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
详解如何利用Cython为Python代码加速
2018/01/27 Python
Django 连接sql server数据库的方法
2018/06/30 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Django logging配置及使用详解
2019/07/23 Python
python实现批量文件重命名
2019/10/31 Python
Python标准库itertools的使用方法
2020/01/17 Python
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
遗嘱继承公证书
2014/04/09 职场文书
服务标兵事迹材料
2014/05/04 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
2015元旦标语横幅
2014/12/09 职场文书
党风廉政承诺书2016
2016/03/25 职场文书