从零开始学习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定时关闭窗口的实例
May 22 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 Javascript
jQuery validate验证插件使用详解
May 11 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
JS中事件冒泡和事件捕获介绍
Dec 13 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
vue实例的选项总结
Jun 09 Javascript
Javascript异步流程控制之串行执行详解
Sep 27 Javascript
原生js生成图片验证码
Oct 11 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
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
浅析javascript中的事件代理
2015/11/06 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
js实现旋转木马效果
2017/03/17 Javascript
jQuery日期范围选择器附源码下载
2017/05/23 jQuery
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
小程序实现多选框功能
2018/10/30 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
python实现贪吃蛇双人大战
2020/04/18 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
python代码实现猜拳小游戏
2020/11/30 Python
VSCode 自定义html5模板的实现
2019/12/05 HTML / CSS
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
新手上路标语
2014/06/20 职场文书
董事长致辞
2015/07/29 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis