如何在快餐咖啡中使用快递中间件

时间:2013-03-25 12:40:04

标签: node.js express coffeescript

所以我尝试将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'

最后,这不会像它应该的那样拦截动作。在这种情况下,您如何将表达中间件与行动联系起来?

1 个答案:

答案 0 :(得分: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);