从零开始学习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控制上传文件的大小
Oct 26 Javascript
使用prototype.js 的时候应该特别注意的几个问题.
Apr 12 Javascript
jquery select选中的一个小问题
Oct 11 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
使用JavaScriptCore实现OC和JS交互详解
Mar 28 Javascript
微信小程序scroll-view组件实现滚动动画
Jan 31 Javascript
vue实现移动端悬浮窗效果
Dec 01 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
Mar 26 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二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
javascript prototype,executing,context,closure
2008/12/24 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jquery对表单操作2
2011/04/06 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
wxPython窗口中文乱码解决方法
2014/10/11 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
三星法国官方网站:Samsung法国
2019/10/31 全球购物
感恩教育活动总结
2014/05/05 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
2016新年致辞
2015/08/01 职场文书
html2 canvas svg不能识别的解决方案
2021/06/03 HTML / CSS
Mysql事务索引知识汇总
2022/03/17 MySQL