Javascript Express source中的何处定义了router.get函数?
我想看看express.Router.get的实现 我查看了git上的express源代码,从项目的index.js开始 索引具有module.exports=require'./lib/express'。该文件具有var Router=require'./Router'。该位置是一个目录,因此我检查了该目录中的index.js文件。果不其然,它有:Javascript Express source中的何处定义了router.get函数?,javascript,node.js,express,Javascript,Node.js,Express,我想看看express.Router.get的实现 我查看了git上的express源代码,从项目的index.js开始 索引具有module.exports=require'./lib/express'。该文件具有var Router=require'./Router'。该位置是一个目录,因此我检查了该目录中的index.js文件。果不其然,它有: var proto = module.exports = function(options) { var opts = options ||
var proto = module.exports = function(options) {
var opts = options || {};
function router(req, res, next) {
router.handle(req, res, next);
}
// mixin Router class functions
setPrototypeOf(router, proto)
router.params = {};
router._params = [];
router.caseSensitive = opts.caseSensitive;
router.mergeParams = opts.mergeParams;
router.strict = opts.strict;
router.stack = [];
return router;
};
这是返回路由器函数的代码。但是,任何地方都没有定义.get函数。实际功能在哪里定义
注意:我询问的是您将使用的get函数,如:
router.get“/”,..浏览Express v4.15.2,我在Express/lib/application.js第468行中发现了以下内容 这个路由器来自express/lib/router/index.js 根据您所寻找的内容,您可以: express/lib/router/layer.js::匹配行110,检查此路由是否匹配路径,如果匹配,则填充.params express/lib/router/route.js::调度行98,用于将请求、res调度到该路由
我不能推翻你的答案,因为我没有足够的声誉,但谢谢!
/**
* Delegate `.VERB(...)` calls to `router.VERB(...)`.
*/
methods.forEach(function(method){
app[method] = function(path){
if (method === 'get' && arguments.length === 1) {
// app.get(setting)
return this.set(path);
}
this.lazyrouter();
var route = this._router.route(path);
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});