2013-03-25 52 views
0

所以我想用express-coffeeexpress-form中间件一起使用,我遵循所提出的控制器结构。如何在快速咖啡中使用快递中间件

在channels.coffee(控制器)我有

module.exports = 
    .. 
    create: (req, res)-> 
     form(
     filter('title') 
      .trim() 
      .required() 
    ) 
     console.log 'after filter' 
     if form.isValid 
     console.log 'isValid' 
     else 
     console.log req.form.title 
     console.log req.form.title 
     res.send 'finished' 

最终,这并不拦截的动作,像它应该。在这种情况下,如何将中间件表达为行动?

回答

0

您在处理程序中调用中间件,而它应该用作路由的参数。

在JS,它应该是这样的:

var channels = require('./channels'); 
app.get('/', form(...), channels.create); 

如果你想保持中间件和处理程序一起,你可以试试这个(还是JS,我的CS是最好的锈。):

// channels.js 
module.exports = { 
    create : [ form(...), function(req, res) { 
    }] 
}; 
// app.js 
var channels = require('./channels'); 
app.get('/', channels.create); 
+0

是否有可能将其移入channels.create? – Cedric 2013-03-25 21:31:25

+0

我修改了我的答案:) – robertklep 2013-03-25 21:38:09

+0

就是这样,我在找什么 - 谢谢! :-) – Cedric 2013-03-26 15:59:34