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