从零开始学习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 相关文章推荐
IE与firefox下Dhtml的一些区别小结
Dec 02 Javascript
jquery动态添加删除div 具体实现
Jul 20 Javascript
js打开新窗口方法整理
Feb 17 Javascript
jQuery实现加入购物车飞入动画效果
Mar 14 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
Nov 04 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
jQuery排序插件tableSorter使用方法
Feb 10 Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
Jul 30 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
js实现点击选项置顶动画效果
Aug 25 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
2006/12/13 PHP
分享ThinkPHP3.2中关联查询解决思路
2015/09/20 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
Python实现括号匹配方法详解
2020/02/10 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
教育系统干部作风整顿心得体会
2014/09/09 职场文书
详解Redis瘦身指南
2021/05/26 Redis
详解Java实践之抽象工厂模式
2021/06/18 Java/Android
详解java如何集成swagger组件
2021/06/21 Java/Android
mysql查看表结构的三种方法总结
2022/07/07 MySQL