我无法找到post
或Router
方法的代码。我还没有在expressjs lib文件夹中找到它们,所以它们可能存在于var express = require('express');
var router = express.Router();
var Blah = require('../modules/Blah');
router.post('/', function(req, res, next) {
Blah.foo(req, res);
});
所需的一个js文件中。
next
我需要它来找出{{1}}参数传递给上面的回调函数的位置,因为它必须由ExpressJS框架完成。
答案 0 :(得分:1)
Express使用methods模块将http谓词动态附加到路由器:
lib / router / index.js:
// create Router#VERB functions
methods.concat('all').forEach(function(method){
proto[method] = function(path){
var route = this.route(path)
route[method].apply(route, slice.call(arguments, 1));
return this;
};
});
答案 1 :(得分:1)
有关详细信息,请参阅KeatsPeeks的答案。以下是一些指向源代码特定部分的链接,可能会有所帮助:
get
和post
方法在methods
模块中定义:
https://github.com/jshttp/methods/blob/master/index.js#L14-L15
lib/applciation.js
.METHOD
router.METHOD
对lib/router/index.js
的{{1}}次要求委托给lib/router/route.js
:
https://github.com/strongloop/express/blob/master/lib/application.js#L471-L484
其余的都在methods
:
https://github.com/strongloop/express/blob/master/lib/router/index.js#L506-L513
并在Appdelegate.m
中搜索“[window addSubview:viewController.view];
”:
https://github.com/strongloop/express/blob/master/lib/router/route.js