从零开始学习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 相关文章推荐
js 操作select相关方法函数
Dec 06 Javascript
js与jquery获取父元素,删除子元素的两种不同方法
Jan 09 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
addeventlistener监听scroll跟touch(实例讲解)
Aug 04 Javascript
JS处理一些简单计算题
Feb 24 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
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
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
jQuery 1.0.2
2006/10/11 Javascript
javascript 自动转到命名锚记
2009/01/10 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
jQuery把表单元素变为json对象
2013/11/06 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
Python socket编程实例详解
2015/05/27 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
python自定义函数def的应用详解
2020/06/03 Python
简单的Python人脸识别系统
2020/07/14 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
C语言笔试集
2012/07/24 面试题
建筑安全员岗位职责
2014/03/13 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
初中生操行评语大全
2014/04/24 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
保险公司演讲稿
2014/09/02 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
在职证明范本
2015/06/15 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书