从零开始学习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 DataSet数据源处理代码
Mar 29 Javascript
JS打印gridview实现原理及代码
Feb 05 Javascript
无闪烁更新网页内容JS实现
Dec 19 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
Javascript单例模式的介绍和实例
Oct 08 Javascript
js实现倒计时及时间对象
Nov 15 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
Nov 24 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 Javascript
Node.js中的cluster模块深入解读
Jun 11 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
Oct 30 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采集腾讯微博的实现代码
2012/01/19 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php连接mysql数据库
2017/03/21 PHP
PHP解决中文乱码
2017/04/28 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
基于jquery tab切换(防止页面刷新)
2012/05/23 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
jqGrid读取选择的多行的某个属性代码
2014/05/18 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
python中使用序列的方法
2015/08/03 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
程序员岗位职责
2013/11/11 职场文书
给学校的建议书
2014/03/12 职场文书
cf战队收人广告词
2014/03/14 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python