在研究了一些中间件之后,我还有一个问题。
看看下面的工作设置,它只是将 do it 函数附加到 req 对象,以便我们可以在任何路由中调用它,就像req.doit()
但是req, res, next来自哪里?,我从来没有传递过它们,我更加好奇它是如何工作的,因为匿名函数 (2.) 被另一个函数 (1.) 包围,我什至可以传递参数。
MiddleWareTest.js:
var test = function(options){ //1.)
return function(req, res, next) { //2.)
req.doit = function() {
console.log('doit')
}
next();
}
}
module.exports = test;
应用程序.js:
...
var myMiddleware = require('./MiddlewareTest.js')
app.use(myMiddleware())
...
欢迎任何加深我知识的建议:)
~马克