码迷,mamicode.com
首页 > 其他好文 > 详细

express源码剖析--Router模块

时间:2017-01-09 20:32:58      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:http协议   协议   原型   剖析   请求   res   code   ack   类型   

1.加载模块执行代码:

methods.forEach(function(method){
  //method是http协议的各种请求方法,如:get,put,headee,post
  Route.prototype[method] = function(){
      ....为method的各种方法构造一个Layer,并且放入stack数组中
  };
});
//其实router.all()的功能和methods的功能差不多。

2.构造函数

function Route(path) {
  //三个成员, 路由的路径,方法对象。和储存对应的请求处理函数
  this.path = path;
  this.stack = [];

  debug(‘new %s‘, path);

  // route handlers for various http methods
  this.methods = {};
}

3.原型对象上方法

Route.prototype ={
  /*返回boolean类型,判断router是否支持给定的method方法*/
   _handles_method:_handles_method(method),
  /*返回一个rounter所支持的HTTP请求的数组*/
    _options:_options(),
  //把http请求通过router对象定义好的method方法处理,
  //也就是对req.route = this,定义next函数,
   dispatch:function dispatch(req, res, done)    
}

 

 

 

express源码剖析--Router模块

标签:http协议   协议   原型   剖析   请求   res   code   ack   类型   

原文地址:http://www.cnblogs.com/liuyinlei/p/6266185.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!