是否可以扩展快速路由器功能?我需要发送soket.io以及响应和请求。
在一个文件中我有路由器:
var contoller = require('controller');
...
module.exports = function(app, io) {
router.post('/', controller.postAction);
}
控制器文件看起来像这样:
...
controler.prototype.postAction = function(req, res) {
}
...
所以从第一个文件我需要发送'i'到控制器,我怎么能这样做?
答案 0 :(得分:0)
您可以定义实际的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
充当包装器,它返回实际的中间件,因此您可以轻松地将任何参数传递给它。
如果这不是你想要的,请告诉我!