2013-03-25 54 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