从零开始学习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 相关文章推荐
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
Aug 14 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
Jquery操作radio的简单实例
Jan 06 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
JavaScript图片轮播代码分享
Jul 31 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
react高阶组件经典应用之权限控制详解
Sep 07 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
微信小程序http连接访问解决方案的示例
Nov 05 Javascript
vue-cli中使用高德地图的方法示例
Mar 28 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
Jun 08 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
基于mysql的论坛(1)
2006/10/09 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
JS实现打砖块游戏
2020/02/14 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
网易2016研发工程师编程题 奖学金(python)
2019/06/19 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
留学推荐信写作指南
2014/01/25 职场文书
路政管理求职信
2014/06/18 职场文书
欢迎标语大全
2014/06/21 职场文书
党员个人公开承诺书
2014/08/29 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
微信小程序基础教程之echart的使用
2021/06/01 Javascript
讲解Python实例练习逆序输出字符串
2022/05/06 Python