从零开始学习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 对象的定义方法
Jan 10 Javascript
jquery 插件学习(一)
Aug 06 Javascript
JavaScript获取XML数据附示例截图
Mar 05 Javascript
jQuery中insertBefore()方法用法实例
Jan 08 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
使用jquery动态加载Js文件和Css文件
Oct 24 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
EasyUI中的dataGrid的行内编辑
Jun 22 Javascript
Vue官网todoMVC示例代码
Jan 29 Javascript
在Vue中使用Compass的方法
Mar 02 Javascript
微信小程序实现音乐播放器
Nov 20 Javascript
js 解析 JSON 数据简单示例
Apr 21 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中正则表达式的使用方法描述
2008/07/30 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
js列举css中所有图标的实现代码
2011/07/04 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
Angular @HostBinding()和@HostListener()用法
2018/03/05 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
Python读取指定日期邮件的实例
2019/02/01 Python
python中的print()输出
2019/04/12 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Django REST Framework序列化外键获取外键的值方法
2019/07/26 Python
pytorch forward两个参数实例
2020/01/17 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
信息专业本科生个人的自我评价
2013/10/28 职场文书
大学生演讲稿范文
2014/01/11 职场文书
2014年协会工作总结
2014/11/22 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
教育教学工作反思
2016/02/24 职场文书
详解Python描述符的工作原理
2021/06/11 Python