是否可以扩展快递路由器的功能?我需要发送插座。IO以及响应和请求。
在一个文件中我有router:
var contoller = require('controller');
...
module.exports = function(app, io) {
router.post('/', controller.postAction);
}
控制器文件看起来像这样:
...
controler.prototype.postAction = function(req, res) {
}
...
所以从第一个文件我需要发送' io '到控制器,我怎么做呢?
您可以定义实际的postAction
函数,它本身返回一个函数并将io
传递给postAction
函数,如下所示:
controler.prototype.postAction = function(io) { // you receive io as an argument
return function(req, res){
// your midleware code here
}
}
,你可以在你的路由器中这样要求:
var contoller = require('controller');
...
module.exports = function(app, io) {
router.post('/', controller.postAction(io)); // note here we pass io
}
这里发生的是函数postAction
充当返回实际中间件的包装器,因此您可以轻松地将任何参数传递给它。
让我知道,如果这不是你要找的!