从零开始学习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 计算两个整数的百分比值
Dec 26 Javascript
JQuery优缺点分析说明
Apr 10 Javascript
IFrame跨域高度自适应实现代码
Aug 16 Javascript
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
Bootstrap路径导航与分页学习使用
Feb 08 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
Jan 30 Javascript
详解Nuxt.js中使用Element-UI填坑
Sep 06 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 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
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
简洁的十分钟Python入门教程
2015/04/03 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
python之array赋值技巧分享
2019/11/28 Python
python批量处理txt文件的实例代码
2020/01/13 Python
Python通过socketserver处理多个链接
2020/03/18 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
快速创建python 虚拟环境
2020/11/28 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
单位创先争优活动方案
2014/01/26 职场文书
无私奉献演讲稿
2014/09/04 职场文书
对公司的意见和建议
2015/06/04 职场文书
如何优化vue打包文件过大
2022/04/13 Vue.js