从零开始学习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 URL解析函数和分段URL解析方法
Apr 12 Javascript
js检验密码强度(低中高)附图
Jun 05 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
Aug 11 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
IScroll5 中文API参数说明和调用方法
May 21 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
Sep 14 Javascript
js实现右键菜单功能
Nov 28 Javascript
jQuery、layer实现弹出层的打开、关闭功能
Jun 28 jQuery
AngularJS 仿微信图片手势缩放的实例
Sep 28 Javascript
vue-cli webpack 引入swiper的操作方法
Sep 15 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
支持oicq头像的留言簿(二)
2006/10/09 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
smarty基础之拼接字符串的详解
2013/06/18 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
2016/12/02 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JavaScript实现购物车基本功能
2017/07/21 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
python引用DLL文件的方法
2015/05/11 Python
python Django批量导入不重复数据
2016/03/25 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
资产评估专业学生的自我鉴定
2013/11/14 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
青少年法制教育心得体会
2016/01/14 职场文书