express源码剖析--Router模块

Posted anthonyliu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了express源码剖析--Router模块相关的知识,希望对你有一定的参考价值。

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模块的主要内容,如果未能解决你的问题,请参考以下文章

express源码剖析1

express源码分析之Router

无法访问 express js router.delete 中的参数

《Docker 源码分析》全球首发啦!

fasttext源码剖析

fasttext源码剖析