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'

最后,这不会像它应该的那样拦截动作。在这种情况下,您如何将 express 中间件连接到操作?

4

1 回答 1

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);
于 2013-03-25T15:16:58.047 回答